直接看源代码;
总结:
第一种方式,利用中间变量进行累加,这种方式最简单粗暴;
第二种方式; 利用我们linq aggretion(聚合)的原理,有点函数编程的感觉,每一次求和的结果,参与到下一次的计算中;
第三种方式:经典的递归;
三种方式,结果没有什么,差异,更过的是体会实现过程;
/// <summary> /// 这种是利用中间变量实现累加的一个过程; /// </summary> static void Sum() { int sum = 0; int n = 3; for(int i = 1; i <=n; i++) { sum+=i; } Console.WriteLine($"{sum}"); } /// <summary> /// 这种有点函数式编程的想法;一次相加的结果,返回参与到另一次求和中 /// 这个就是我们linq的aggrega 的原理; /// </summary> /// <param name="acctor"></param> /// <param name="num"></param> /// <returns></returns> static int acc(int acctor,int num) { return acctor + num; } /// <summary> /// /// </summary> static void TestAcc() { int total = 0; int num = 3; for (int i = 1; i <=num; i++) { total = acc(total, i); } Console.WriteLine(total); } //用递归的方式来求和; static int Recurrion(int num) { if (num == 0) { return 0; } return num+ Recurrion(num - 1); } static void Main(string[] args) { Console.WriteLine("sum-----"); Sum(); Console.WriteLine("acc-----"); TestAcc(); Console.WriteLine("recursion----"); int result = Recurrion(3); Console.WriteLine(result); Console.ReadLine(); }
结果: