Think:
1递推公式:
1>奇数行未知元素:a[i][j] = (a[i-2][j-1] - a[i][j-1] - a[i][j+1])/2;
偶数行未知元素:a[i][j] = a[i+1][j] + a[i+1][j+1];
先得到奇数行然后递推偶数行
2反思:
1>紫书备注:模算法
2>下标移动
以下为Accepted代码
#include <bits/stdc++.h>
using namespace std;
int main(){
int T, i, j;
int v[14][14];
scanf("%d", &T);
while(T--){
memset(v, 0, sizeof(v));
for(i = 1; i <= 5; i++){
for(j = 1; j <= i; j++){
scanf("%d", &v[2*i-1][2*j-1]);
}
}
/*递推奇数行*/
for(i = 5; i > 1; i--){
for(j = 1; j < i; j++){
v[2*i-1][j*2] = (v[2*i-3][j*2-1]-v[2*i-1][j*2-1]-v[2*i-1][j*2+1])/2;
}
}
/*递推偶数行*/
for(i = 8; i > 0; i -= 2){
for(j = 1; j <= i; j++){
v[i][j] = v[i+1][j] + v[i+1][j+1];
}
}
for(i = 1; i <= 9; i++){
for(j = 1; j <= i; j++){
printf("%d%c", v[i][j], j == i? '\n': ' ');
}
}
}
return 0;
}