【问题标题】:Multiplication table structure乘法表结构
【发布时间】:2026-01-06 02:50:01
【问题描述】:

关于这个乘法表结构的问题..

如何创建空格,这样输出会是这样的:

      1 X 9 + 2 = 11
     12 X 9 + 3 = 111
    123 X 9 + 4 = 1111
   1234 X 9 + 5 = 11111
  12345 X 9 + 6 = 111111
 123456 X 9 + 7 = 1111111
1234567 X 9 + 8 = 11111111

代码:

#region MTABLE

int number1 = 1;

for (int i = 2; i <= 8; i++)

{
    int number2 = number1 * 9 + i;
    Console.WriteLine("{0} x {1} + {2} = {3}  ", number1, 9, i, number2);
    number1 = number1 * 10 + i;

    for (int j = 1; j <= i; j++)
    Console.Write(" ");
}

Console.ReadKey();

#endregion

我的代码当前输出:

1 x 9 + 2 = 11
  12 x 9 + 3 = 111
   123 x 9 + 4 = 1111
    1234 x 9 + 5 = 11111
     12345 x 9 + 6 = 111111
      123456 x 9 + 7 = 1111111
       1234567 x 9 + 8 = 11111111

【问题讨论】:

  • 所以在第一行写 9 个空格,在下一行写 8 个空格,在下一行写 7 个空格等等。提示:如何写一个表达式来转换 i,对于 [1,2,3 中的每个 i ,..9] 到 [9..3,2,1]?也就是说,将“f”表达式写入:int i2 = f(i); 或者,使用辅助“向下”计数器变量..

标签: c# multiplication tabular


【解决方案1】:

将内循环移动到外循环的开头,从 8-i 倒数:

for (int i = 2; i <= 8; i++)
{
    for (int j = 8-i; j >0; j--)
        Console.Write(" ");

    int number2 = number1 * 9 + i;
    Console.WriteLine("{0} x {1} + {2} = {3}  ", number1, 9, i, number2);
    number1 = number1 * 10 + i;
}

【讨论】:

  • 我试图为但没有这个“8 - i”做类似的事情..当我尝试使用“j--”循环时也没有结束
  • 好吧,我已经尝试了我的版本,结果看起来就像您要找的一样。奖励样式点:将 8 定义为常量并使用该常量而不是在代码中重复 8 多次
【解决方案2】:

你已经接近了,你只想倒计时而不是倒计时。您可以通过从条件中的 8 中减去 i 来做到这一点。

for (int j = 1; j <= 8 - i; j++)
    Console.Write(" ");

【讨论】: