回归基础 C# 数字求和有哪些方法

回归基础 C# 数字求和有哪些方法

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

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

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

Sum from 1 to n

public class Program 
{
    public static int AddUp(int num) => (num * (num+1)) / 2 ;
    
}

解法 2: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# 数字求和有哪些方法

猜你喜欢

转载自blog.csdn.net/chenbingcai/article/details/105793108