• 售前

  • 售后

热门帖子
入门百科

蓝桥杯真题 承压盘算 c++代码实现 X 星球的高科技实行室中整齐地堆放着某批

[复制链接]
圣道 显示全部楼层 发表于 2022-1-16 08:40:11 |阅读模式 打印 上一主题 下一主题
标题形貌

本题为填空题,只必要算出效果后,在代码中利用输出语句将所填效果输出即可。

X 星球的高科技实行室中整洁地堆放着某批贵重金属质料。
每块金属质料的外形、尺寸完全同等,但重量差异。 金属质料被严格地堆放成金字塔形。
  1.                              7
  2.                             5 8
  3.                            7 8 8
  4.                           9 2 7 2
  5.                          8 1 4 9 1
  6.                         8 1 8 8 4 1
  7.                        7 9 6 1 4 5 4
  8.                       5 6 5 5 6 9 5 6
  9.                      5 5 4 7 9 3 5 5 1
  10.                     7 5 7 9 7 4 7 3 3 1
  11.                    4 6 4 5 5 8 8 3 2 4 3
  12.                   1 1 3 3 1 6 6 5 5 4 4 2
  13.                  9 9 9 2 1 9 1 9 2 9 5 7 9
  14.                 4 3 3 7 7 9 3 6 1 3 8 8 3 7
  15.                3 6 8 1 5 3 9 5 8 3 8 1 8 3 3
  16.               8 3 2 3 3 5 5 8 5 4 2 8 6 7 6 9
  17.              8 1 8 1 8 4 6 2 2 1 7 9 4 2 3 3 4
  18.             2 8 4 2 2 9 9 2 8 3 4 9 6 3 9 4 6 9
  19.            7 9 7 4 9 7 6 6 2 8 9 4 1 8 1 7 2 1 6
  20.           9 2 8 6 4 2 7 9 5 4 1 2 5 1 7 3 9 8 3 3
  21.          5 2 1 6 7 9 3 2 8 9 5 5 6 6 6 2 1 8 7 9 9
  22.         6 7 1 8 8 7 5 3 6 5 4 7 3 4 6 7 8 1 3 2 7 4
  23.        2 2 6 3 5 3 4 9 2 4 5 7 6 6 3 2 7 2 4 8 5 5 4
  24.       7 4 4 5 8 3 3 8 1 8 6 3 2 1 6 2 6 4 6 3 8 2 9 6
  25.      1 2 4 1 3 3 5 3 4 9 6 3 8 6 5 9 1 5 3 2 6 8 8 5 3
  26.     2 2 7 9 3 3 2 8 6 9 8 4 4 9 5 8 2 6 3 4 8 4 9 3 8 8
  27.    7 7 7 9 7 5 2 7 9 2 5 1 9 2 6 5 3 9 3 5 7 3 5 4 2 8 9
  28.   7 7 6 6 8 7 5 5 8 2 4 7 7 4 7 2 6 9 2 1 8 2 9 8 5 7 3 6
  29. 5 9 4 5 5 7 5 5 6 3 5 3 9 5 8 9 5 4 1 2 6 1 4 3 5 3 2 4 1
  30. X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
复制代码
此中的数字代表金属块的重量(计量单元较大)。 最下一层的 XX 代表 3030 台极高精度的电子秤。
假设每块质料的重量都非常正确地均匀落在下方的两个金属块上, 末了,全部的金属块的重量都严格正确地中分落在最底层的电子秤上。
电子秤的计量单元很小,以是表现的数字很大。
工作职员发现,此中读数最小的电子秤的示数为:20864582312086458231
请你推算出:读数最大的电子秤的示数为多少?
运行限定

最大运行时间:1s
最大运行内存: 128M
  1. #include<iostream>
  2.         using namespace std;
  3.         double arr[30][30] = {
  4.         {7},
  5.         {5,8},
  6.         {7,8,8},
  7.         {9,2,7,2},
  8.         {8,1,4,9,1},
  9.         {8,1,8,8,4,1},
  10.         {7,9,6,1,4,5,4},
  11.         {5,6,5,5,6,9,5,6},
  12.         {5,5,4,7,9,3,5,5,1},
  13.         {7,5,7,9,7,4,7,3,3,1},
  14.         {4,6,4,5,5,8,8,3,2,4,3},
  15.         {1,1,3,3,1,6,6,5,5,4,4,2},
  16.         {9,9,9,2,1,9,1,9,2,9,5,7,9},
  17.         {4,3,3,7,7,9,3,6,1,3,8,8,3,7},
  18.         {3,6,8,1,5,3,9,5,8,3,8,1,8,3,3},
  19.         {8,3,2,3,3,5,5,8,5,4,2,8,6,7,6,9},
  20.         {8,1,8,1,8,4,6,2,2,1,7,9,4,2,3,3,4},
  21.         {2,8,4,2,2,9,9,2,8,3,4,9,6,3,9,4,6,9},
  22.         {7,9,7,4,9,7,6,6,2,8,9,4,1,8,1,7,2,1,6},
  23.         {9,2,8,6,4,2,7,9,5,4,1,2,5,1,7,3,9,8,3,3},
  24.         {5,2,1,6,7,9,3,2,8,9,5,5,6,6,6,2,1,8,7,9,9},
  25.         {6,7,1,8,8,7,5,3,6,5,4,7,3,4,6,7,8,1,3,2,7,4},
  26.         {2,2,6,3,5,3,4,9,2,4,5,7,6,6,3,2,7,2,4,8,5,5,4},
  27.         {7,4,4,5,8,3,3,8,1,8,6,3,2,1,6,2,6,4,6,3,8,2,9,6},
  28.         {1,2,4,1,3,3,5,3,4,9,6,3,8,6,5,9,1,5,3,2,6,8,8,5,3},
  29.         {2,2,7,9,3,3,2,8,6,9,8,4,4,9,5,8,2,6,3,4,8,4,9,3,8,8},
  30.         {7,7,7,9,7,5,2,7,9,2,5,1,9,2,6,5,3,9,3,5,7,3,5,4,2,8,9},
  31.         {7,7,6,6,8,7,5,5,8,2,4,7,7,4,7,2,6,9,2,1,8,2,9,8,5,7,3,6},
  32.         {5,9,4,5,5,7,5,5,6,3,5,3,9,5,8,9,5,4,1,2,6,1,4,3,5,3,2,4,1}
  33.         };
  34.         int main()
  35.         {
  36.                 for (int i = 1; i < 30; i++)
  37.                 {
  38.                         for (int j = 0; j <= i; j++)
  39.                         {
  40.                                 if (j - 1 >= 0)
  41.                                 {
  42.                                         arr[i][j] += arr[i-1][j - 1]/2;
  43.                                         arr[i][j] += arr[i-1][j] / 2;
  44.                                 }
  45.                                 else
  46.                                 {
  47.                                         arr[i][j] += arr[i-1][j] / 2;
  48.                                 }
  49.                         }
  50.                 }
  51.                 double x = 0;
  52.                 double y = arr[29][0];
  53.                 for (int i = 0; i < 30; i++)
  54.                 {
  55.                         if (arr[29][i] > x)
  56.                         {
  57.                                 x = arr[29][i];
  58.                         }
  59.                         if (arr[29][i] < y)
  60.                         {
  61.                                 y = arr[29][i];
  62.                         }
  63.                 }
  64.                 printf("%.0lf\n", 2086458231 / y * x);
  65.         }
复制代码
我在做这道题的时间以为得出的效果的精度在这里的意思就是将小数点移了移位置,我只必要将最大值找出来然后移动小数点就可以,但是并不是如许,我找了好久发现我的最小值单纯移动小数点无法得出标题对应的答案。然后去学习了一下别人的解题思绪发现他还必要将最小值找出然后算出来精度和数字之间的比值关系,进而才可以大概用最大值得出答案。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作