首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

【算法题】不运用乘除法,for,while,if,else,switch,case,条件判断语句(A?B:C) 实现:1+2+.+n

2013-06-25 
【算法题】不使用乘除法,for,while,if,else,switch,case,条件判断语句(A?B:C) 实现:1+2+....+n为了能进大公

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

        #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
    }


博客地址:http://blog.csdn.net/a66081638/article/details/8847850 算法
[解决办法]
你是想展示自己的算法吗
[解决办法]
还有个goto漏掉了
[解决办法]
是的,表面看起来没有使用,但是内部方法用了!
[解决办法]
用 try catch 当  if else 用 ,可以说是奇葩吗?
[解决办法]
这种也叫算法??????
[解决办法]
用linq很简单

int n=100; //计算1+2+...+100
int []arry=new int[n+1];
var res=arry.Select((x,i)=>i).Sum(); //res就是1+2+...n的结果
[解决办法]

bool fun()
{
  ++index;
  sum += index;
  return index != n && fun();
}

热点排行