- 先算出第一行的值,紧紧抓住和当前索引的关系,且需要二维数组来作为一个桥梁。
- 从第二行开始,还是每行每行的算,只不过除了内部的 j+1 还有外部的 i-1
#include<bits/stdc++.h> using namespace std; int main(){ int N; while(cin>>N){ vector<vector<int>> res(N, vector<int>(N,0)); int a = 0;//首先打印第一行 for(int i = 0; i< N;i++){ cout<< a + i + 1<<" "; a = a + i + 1; res[0][i] = a; } cout<<endl; //在打印下面的几行 for(int i = 1; i< N; i++){ for(int j = 0; j< N-i;j++){ cout<< res[i-1][j] + j + 1 + i - 1 <<" "; res[i][j] = res[i-1][j] + j + 1 + i - 1; } cout<<endl; } } return 0; }