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

时间: 2024-10-07 22:30:53

c# number求和的三种方式的相关文章

hive三种方式区别和搭建、HiveServer2环境搭建、HWI环境搭建和beeline环境搭建

说在前面的话 以下三种情况,最好是在3台集群里做,比如,master.slave1.slave2的master和slave1都安装了hive,将master作为服务端,将slave1作为服务端. hive三种方式区别和搭建 Hive中metastore(元数据存储)的三种方式: a)内嵌Derby方式 b)Local方式 c)Remote方式 1.本地derby这种方式是最简单的存储方式,只需要在hive-site.xml做如下配置便可<?xml version="1.0"?&g

NAT的三种方式

NAT的三种方式: 一.端口NAT acces-list 1 permit IP/Mask ip nat inside source list "number" interface fastethernet overload 二.静态NAT ip nat inside sourece static IP 三.动态NAT-以地址池的方式来对于NAT映射 access-list "number" permit IP/Maks ip nat pool cisco IP~I

第七章、函数基础之定义函数的三种方式03

目录 第七章.函数基础之定义函数的三种方式03 一.无参函数 二.有参函数 三.空函数 第七章.函数基础之定义函数的三种方式03 一.无参函数 定义函数时参数是函数体接收外部传值的一种媒介 在函数阶段括号没有参数就是无参函数.调用时不需要传入实参 如果函数体代码逻辑不需要依赖外部传入值,必须定义成无参函数 def func(): print('hello nick') func() # hello nick 二.有参函数 在函数阶段括号有参数就是有参函数.调用时需要传入实参 如果函数体代码逻辑需

AngularJs学习——实现数据绑定的三种方式

三种方式: 方式一:<h5>{{msg}}</h5>  此方式在页面刷新的时候会闪现{{}} 方式二:<h5 ng-bind="msg"></h5> 方式三:<h5 ng-clock class="ng-clock">{{msg}}</h5> 示例代码: <!DOCTYPE html> <html lang="en" ng-app="myapp&q

小蚂蚁学习页面静态化(2)——更新生成纯静态化页面的三种方式

更新生成纯静态化页面的三种方式:1.按照时间间隔更新.2.手动更新.3.定时更新(需要系统配合). 1. 按照时间间隔更新. 当用户第一次访问这个页面的时候,程序自动判断,该静态文件是否存在,并且该文件是否还在有效时间内,如果该文件未超出了有效时间,用户访问的是已经生成的静态文件.如果超出了有效时间,用户得到的是动态输出的内容,同时重新生成静态文件.稍微修改一下昨天的代码为例: <?php //首先判断是否有静态文件,并且文件的最新修改时间到现在是否大于20秒 if(is_file('./tex

Linux中设置服务自启动的三种方式

有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0-6七个运行级别之一) chkonfig                命令行运行级别设置 ntsysv                   伪图形运行级别设置 注意:1.这三种方式主要用于以redhat为基础的发行版 2.如果还不知道运行级别是什么,那么最

Linux识别ntfs及挂载的三种方式

NTFS-3G是一个开源软件,支持在Linux操作系统下读写NTFS格式的分区.它能快速且安全的操作Windows XP,Windows Server 2003, Windows 2000 以及WindowsVista文件系统. 1 .环境准备 安装该软件需要依赖于fuse, Centos6.*中应该默认安装过fuse: [[email protected] yum.repos.d]# rpm -q fuse fuse-2.8.3-4.el6.i686 已经安装 如果没有安装可以yum安装或者编

Tomcat热部署的三种方式

热部署是指在你修改项目BUG的时候对JSP或JAVA类进行了修改在不重启WEB服务器前提下能让修改生效.但是对配置文件的修改除外! 1.直接把项目web文件夹放在webapps里. 2.在tomcat\conf\server.xml中的<host></host>内部添加<context/>标签: <Context debug="0" docBase="D:\demo1\web" path="/demo1"

【Struts2】Struts2获取session的三种方式

1.Map<String,Object> map =  ActionContext.getContext().getSession(); 2.HttpSession session = ServletActionContext.getRequest().getSession(); 3.让Action实现SessionAware接口,并实现public void setSession(Map<String, Object> session) {} 方法,Struts2会在实例化Act