美文网首页
知乎问答之 C# 数字求和有哪些方法

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

作者: JeetChan | 来源:发表于2020-04-27 16:24 被阅读0次

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

    相关文章

      网友评论

          本文标题:知乎问答之 C# 数字求和有哪些方法

          本文链接:https://www.haomeiwen.com/subject/nuquwhtx.html