列号的变化:类似于取模运算。下一项列号=当前列号%当前列号+1;
行号的变化:下一项行号=当前列号/当前行号+当前行号。
C++代码如下:
#include<iostream>
using namespace std;
void print(int n)
{
int row = 1;
int column = 1;
char flag[3] = " \n";
while (row <= n) {
cout << row << "*" << column << "=" << row * column << flag[column / row];
int tmp = column % row + 1;
row = column / row + row;
column = tmp;
}
}
int main()
{
int n;
cin >> n;
print(n);
system("pause");
return 0;
}
注意:当行号等于列号的时候会换行,利用字符数组flag,下表为0的元素为空格,下表为1的元素为换行。