日期:2014-05-17  浏览次数:21179 次

【算法题】不使用乘除法,for,while,if,else,switch,case,条件判断语句(A?B:C) 实现:1+2+....+n
为了能进大公司,要好好学习算法哦!

public class Solutionl_Sum
    {
        //声明长度为N的数组
        public static int[] Temps1 = new int[100];
        public void Print_Sum()
        {
            N = 0;
            //temp = new Temp();
            //Temp2();
            Temp4();
            Console.WriteLine(Sum);
        }

        public static  int Sum { get; set; }
        public static  int N { get; set; }

        #region 递归实现的循环
        
        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

        #region 两个方法实现的循环
        
        public void Temp2()
        {
            ++N;        //++N 相当于每次执行都加1
        &