static void calc(int i,int noChange)
        {
            if (i < 1)
            {
                return;
            }
            if (i == 1)
            {
                Console.WriteLine(noChange + "\t" + (noChange -1) + "\t" + (noChange - 2));
            }
            else
            {
                Console.WriteLine(i*noChange + "\t" + (i-1)* noChange + "\t" + (i-2) * noChange);
            }
            if (i != 1)
            {
                calc(i - 1,noChange);
            }
        }

解决方案 »

  1.   

    for(int i=0;i<=N;i++)
    {
    for(int j=0;j<=N;j++)
    {
    int temp1=N-(i+j);
    int temp2=N;
    if(j==N)temp2=N-i;
    Console.Write(temp1*temp2);
    }
    Console.WriteLine();
    }
      

  2.   

    private long[,] BuildArray(int N)
    {
       if(N<1)
         throw new Exception("N必须大于1");
       long[,] result = new long[N,N];
       for(int i=N;i>=1;i--)
       {
            for(int j=N;j>=1;j--)
            {
                 result[N-i][N-j] = i * j;
             }
        }
        return result;
    }private void Print(long[,] array)
    {
       //格式化输出数组
    }
      

  3.   

    我觉得还是1楼的好,只不过需要把noChange参数给出默认值,就完美了。
    这就用递归做就得了呗。。