C# 从整数列表中删除项目 int[] l = {1,2,3} - 或使用递归添加它们

标签 c# list recursion integer sum

所以有 this博客给出了每个软件工程师都应该能够在不到 1 小时内解决的五个编程问题,我只是重温其中的一些概念。

第一题阅读

使用 for 循环、while 循环和递归编写三个函数来计算给定列表中数字的总和。

显然 for 和 while 循环很简单,但我从

int[] l = { 1, 2, 3, 4, 5, 6, 7, 8, 9};

是否有可能从列表中弹出一个项目,然后每次都通过缩短的列表?

我在python中看到的一次尝试:

numbers = [1,2,3,4,5,6,7,8,9]
def recurse_count(lst):
    if len(lst) == 1:
        return lst[0]
    else:
        i = len(lst) - 1
        subtotal = lst[i] + lst[i - 1]
        lst.pop() #into the void with you
        lst[-1] = subtotal
        return recurse_count(lst)

在 C# 中使用 int[] 是否可行?

最佳答案

一个非常优雅的解决方案是:

static public int sumThisUp(IEnumerable<int> list)
{
    return list.FirstOrDefault() + (list.Any() ? sumThisUp(list.Skip(1)) : 0);
}

关于C# 从整数列表中删除项目 int[] l = {1,2,3} - 或使用递归添加它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30143895/

相关文章:

c# - RSI vs Wilder 的 RSI 计算问题

c# - 如何为 Windows 7 编写进度条以在任务栏上进行 self 更新?

python - 将标签与json格式的句子进行匹配

MIPS 中的递归最大公约数

c++ - 查找一棵树是否为单声道(所有元素都是唯一的)的函数?

c# - 在应用程序退出时处理 RX 线程

python - 搜索元组列表的字典

java - 列表过滤器<List<String>>

c++ - 修改递归子集求和算法

c# - MySql MySqlDataReader 文档?