知乎问答之 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# 数字求和有哪些方法
网友评论