如:有两个for循环语句,外循环与内循环的循环次数是否相同?举出例子说得详细一点···
如一个求1!+2!+3!+....+10!的和。int s=0,m=1;
for(int i=1,i<=10,i++)
{for(int j=1,j<=i,j++)
m*=j;
s=s+m;
m=1;}
Console.Write("1!+2!+3!+....+10!={0}",s);
请解释得详细一点,如:当i=1时,j=?,m=?,s=?,.....最好写几个当i改变时,其他变量的变化,谢谢!

解决方案 »

  1.   

    内层循环次数多,对于每一个不同的i,内层的循环要执行i次
    比如i=2时,内部循环要从j=1开始,循环执行到j=2。。
      

  2.   

    是外循环每循环一次,内循环循环好几次,比如i=1 ,外循环1次 内循环1次
    i=2 ,外循环1次 内循环2次
    i=3 ,外循环1次 内循环3次
    ...
    i=10 ,外循环1次 内循环10次
      

  3.   

    外循环一次,内循环多次i=1:  j=1
    i=2:  j=1,j=2
    i=3:  j=1,j=2,j=3
    .........
    i=10: j=1,j=2.....j=10
      

  4.   

    I would suggest a better programming style.
    void Good()
    {
        int sum = 0;
        for (int i = 1; i <= 10; i++)
        {
            int factorial = 1;
            for (int j = 1; j <= i; j++)
            {
                fatorial *= j;
            }
            sum += fatorial;
        }
        Console.WriteLine("...");
    }void Better()
    {
        int sum = 0;
        for (int i = 1; i <= 10; i++)
        {
            sum += Fatorial(i);
        }
        Console.WriteLine("...");
    }int Fatorial(int number)
    {
        int result = 1;
        for (int i = 2; i <= number; i++)
        {
            result *= i;
        }
        return result;
    }
      

  5.   

    楼主程序上有误,","  应改为  ";".

     int s=0,m=1;
                for (int i = 1; i <= 10; i++)
                {
                    for (int j = 1; j <= i; j++)
                        m *= j;
                    s = s + m;
                    m = 1;
                } 
               Console.Write("1!+2!+3!+....+10!={0}",s); 
     因为外循环只循环一次就够了,内循环就循环n次(依你所要循环的次数而定)。
     m*=j-->m=m*j即m*j赋值给m,然后继续s+m赋值給s,即m=1*1;s=0+1;得s=1,这是第一轮循环。1
     .....2!s=1*1+1*1*2+.....+10!
     然后循环for语句,因为i<=10,所以即得值.或者更容易理解的话:方法2 int s=0,m=1;
                for (int i = 1; i <= 10; i++)
                {
                    
                    m *= i;//1=1*1,
                    s = s + m;//s=0+1;
                   
                } 
               Console.Write("1!+2!+3!+....+10!={0}",s); 
    第一轮i=1,m*=i即m1=1*1,s=s+m,s=0+1,s=1
    第一轮i=2,m*=i即m2=1*2,s=s+m,s=1+1*2,s=3
    ......
    一直到10!
    方法3:
    using System;
    using System.Collections.Generic;
    using System.Text;namespace jiecheng
    {
        class Program
        {
            static void Main(string[] args)
            {
                int sum;
                sum = jc(1) + jc(2) + jc(3) + jc(4) + jc(5)+jc(6)+jc(7)+jc(8)+jc(9)+jc(10);
                Console.Write("10的阶乘为:"+sum.ToString());
                Console.Read();
            }
            static int jc(int m)
            {
                int n = 1;
                for (int i = 1; i <= m; i++)
                {
                    n *= i;
                }
                return n;
            }    }
    }