首页 > 代码库 > UVa 11040 (水题) Add bricks in the wall
UVa 11040 (水题) Add bricks in the wall
题意:
45块石头如图排列,每块石头上的数等于下面支撑它的两数之和,求其余未表示的数。
分析:
首先来计算最下面一行的数,A71 = A81 + A82 = A91 + 2A92 + A93,变形得到A92 = (A71 - A91 - A93) / 2.
以此类推,就能得到最下面一整行的数。有了这个“地基”以后,所有的数就都能算出来了。
1 #include <cstdio> 2 3 int a[10][10]; 4 5 int main() 6 { 7 //freopen("in.txt", "r", stdin); 8 int T; 9 scanf("%d", &T);10 while(T--)11 {12 for(int i = 1; i <= 9; i += 2)13 for(int j = 1; j <= i; j += 2)14 scanf("%d", &a[i][j]);15 for(int i = 2; i <= 8; i += 2)16 a[9][i] = (a[7][i-1]-a[9][i-1]-a[9][i+1])/2;17 for(int i = 8; i >= 1; --i)18 {19 if((i & 1) == 0)20 {21 for(int j = 1; j <= i; ++j)22 a[i][j] = a[i+1][j] + a[i+1][j+1];23 }24 else25 {26 for(int j = 2; j <= i; j += 2)27 a[i][j] = a[i+1][j] + a[i+1][j+1];28 }29 }30 31 for(int i = 1; i <= 9; ++i)32 {33 for(int j = 1; j < i; ++j)34 printf("%d ", a[i][j]);35 printf("%d\n", a[i][i]);36 }37 38 }39 40 return 0;41 }
UVa 11040 (水题) Add bricks in the wall
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。