c# number求和的三种方式

直接看源代码;

总结:

第一种方式,利用中间变量进行累加,这种方式最简单粗暴;

第二种方式; 利用我们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();

        }

 

结果:

 

 

转载于:https://www.cnblogs.com/mc67/p/8184203.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值