知乎问答之 C# 数字求和有哪些方法

知乎问答之 C# 数字求和有哪些方法

问题:数字求和,创建一个以数字作为参数的函数。 将所有数字从 1 加到你传递给函数的数字上。 例如,如果输入为 4,则你的函数应返回 10,因为 1 + 2 + 3 + 4 = 10。

public class Program 
{
    public static int AddUp(int num) 
    {
      
    }
}

解法 1:公式法,即高斯求和法。

高斯求和法
public class Program 
{
    public static int AddUp(int num) => (num * (num+1)) / 2 ;
    
}

解法 2:C# 特有的方法,LINQ Enumerable.Sum 方法。

using System.Linq;

public class Program 
{
    public static int AddUp(int num) => Enumerable.Range(1, num).Sum();
}

解法 3:循环法。

for 循环

public class Program 
{
    public static int AddUp(int num) 
    {
      int sum = 0;
      for (int i = 0; i <= num; i++){
        sum = i + sum;
      }
      return sum;
    }
}

while 循环

public class Program 
{
    public static int AddUp(int num) 
    {
      int i = 1;
      int sum = 0;
      while(i <= num){
          sum += i;
      i++;
    }
       return sum;
    }
}

解法 4:经典递归法。

public class Program 
{
    public static int AddUp(int num) 
    {
        return (num==0)?0:num+AddUp(num-1);
    }
}

解法 5:去探索吧......

参考部分整理了这次思考的资源。

数学家高斯

参考:

Techniques for Adding the Numbers 1 to 100:
Enumerable.Sum Method:
Enumerable.Range(Int32, Int32) Method:
C# Sum Method: Add up All Numbers:
for (C# reference):
Sum of natural numbers using recursion:
C# Back to Basics – Recursion and Recursive Methods:
知乎想法 C# 数字求和有哪些方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容