int lo = 1;
 for (int i = 1; i < 50; i++)
     lo = lo * i;
 Console.WriteLine(lo);

解决方案 »

  1.   

    int lo = 1;//long lo = 1;
      

  2.   

    溢位了... ...
    int,32位有符号的整数,范围从-2147483648到2147483647
    50的階層早超過了...
      

  3.   

    100!=9.3326215443944152681699238856267e+157涉及到大数运算,.NET自带的类型无法满足你的需求了
      

  4.   

     int lo = 1;
                for (int i = 1; i < 50; i++)
                {
                    lo = i * i;
                    Console.WriteLine(lo);
                }
                Console.ReadKey();
      

  5.   

     int lo = 1;
                for (int i = 1; i < 50; i++)
                {
                    lo = lo * i;
                    Console.WriteLine(lo); //你可以看见都益出了
                }
                Console.ReadKey();
      

  6.   

    Arithmetic operation resulted in an overflow.for (int i = 1; i < 50; i++)
                {
                    checked
                    {
                        lo = lo * i;
                    }
                }
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  7.   

    各位同学, long lo = 1;
    for (int i = 1; i < 50; i++)
    lo = lo * i;
     Console.WriteLine(lo);把int换成long
    50的基层可以输出,但是100的还是0,越界了结果就是0?
      

  8.   


    请用
    C# codeDouble lo=1
      

  9.   

    long lo = 1;
    i=100的时候=9.33262154439441E+155
    i=200的时候=正无穷大~
      

  10.   

    第 34 次循环的时候,其结果的二进制为 "1111111111111111111111111110111110000000000000000000000000000000”, 可以看见表示 int 位置的地方全部是零。然后后面的就是小学数学的问题了: 0 乘以任何数均为零。补习补习一下小学三年级的数学先好不好