zoukankan      html  css  js  c++  java
  • 不使用乘除法,for,while,if,else,switch,case,条件判断语句(A?B:C) 实现:1+2+....+n

    题目

    题目:求1+2+...+n,

    要求不能使用乘除法,for,while,if,else,switch,case,条件判断语句(A?B:C)

    使用的语言:

    C#

    分析:

    循环是想让相同的代码执行,达到累加的作用,在C#中最常见的有三种循环方式:

    1.两个类初始化调时初始化类

    2.两个方法相互调用

    3.递归一个方法

    实现:

    1.两个类初始化调时初始化类

    public class Solutionl_Sum
        {
    public void Print_Sum()
            {
                N = 0;
                temp = new Temp();
                Console.WriteLine(Sum);
            }
    public static  int Sum { get; set; }
            public static  int N { get; set; }
    #region 两个类实现的循环
    
            //声明长度为N的数组
            public static Temp[] Temps = new Temp[100];
            public static Temp temp;
            public class Temp
            {
                public int Index;
                public Temp()
                {
                    //++N 相当于每次执行都加1
                    ++N;
                    //相当于1+2+...+N
                    Sum += N;
                    //初始化Temp1类
                    Temp1 Temp1 = new Temp1();
                }
            }
    
            public class Temp1{
                public Temp1()
                {
                    try
                    {
                        //将对象放到数组中,当N-1>100是报错,停止循环
                        Temps[N - 1] = temp;
                        //初始化Temp类
                        temp = new Temp();
                    }
                    catch (Exception)       //利用try..catch结束循环
                    {
                        //由于先执行的是Temp(),所以相当于多加了一次N,结束时一定要减去N
                        Sum -= N;
                    }
                }
            }
    
            #endregion
    }
    

    2.两个方法相互调用

    public class Solutionl_Sum
        {
    public void Print_Sum()
            {
                N = 0;
                Temp2();
                Console.WriteLine(Sum);
            }
    public static  int Sum { get; set; }
            public static  int N { get; set; }
    #region 两个方法实现的循环
            //声明长度为N的数组
            public static int[] Temps1 = new int[100];
            public void Temp2()
            {
                ++N;        //++N 相当于每次执行都加1
                Sum += N;   //相当于1+2+...+N
                Temp3();    //初始化Temp1类
            }
    
            public void Temp3()
            {
                try
                {
                    Temps1[N - 1] = N;  //将N放到数组中,当N-1>100是报错,停止循环
                    Temp2();            //初始化Temp类
                }
                catch (Exception)       //利用try..catch结束循环
                {
                    Sum -= N;           //由于先执行的是Temp2(),所以相当于多加了一次N,结束时一定要减去N
                }
                
            }
    
            #endregion
    }

    3.递归一个方法

    public class Solutionl_Sum
        {
    public void Print_Sum()
            {
                N = 0;
                Temp4();
                Console.WriteLine(Sum);
            }
    public static  int Sum { get; set; }
            public static  int N { get; set; }
    #region 递归实现的循环
            //声明长度为N的数组
            public static int[] Temps1 = new int[100];
            public void Temp4()
            {
                ++N;            //++N 相当于每次执行都加1
                Sum += N;       //相当于1+2+...+N
                try
                {
                    Temps1[N - 1] = N;          //将N放到数组中,当N-1>100是报错,停止循环
                    Temp4();                    //递归循环
                }
                catch (Exception)               //利用try..catch结束循环
                {
                    Sum -= N;                   //由于先执行的是Sum += N,所以相当于多加了一次N,结束时一定要减去N
                }
            }
    
            #endregion
    }

    结语

    好了,就到这里,为了能进大公司,要好好学习算法和数据结构!

  • 相关阅读:
    :Linux 系统日志管理 日志转储
    Linux 系统日志管理 rsyslogd配置文件
    Linux 系统日志管理
    Linux 定时任务
    Linux进程管理 lsof命令:列出进程调用或打开的文件信息
    Linux查看系统与内核信息(uname、file和lsb_release -a)
    Linux查看本机登陆用户信息(w、who、last和lastlog命令)
    windows下安装mingw
    debian7.8 安装 chm
    Linux-vmware tools安装与cdrom挂载
  • 原文地址:https://www.cnblogs.com/memaxiaofeng/p/3275477.html
Copyright © 2011-2022 走看看