2021年第三届全国高校计算机能力挑战赛决赛(java)
个人解答源码及思路
(第二套试卷)
1.临近年末,A公司准备给公司员工分法奖品,每名员工都可以提出自己期望
的奖品。为了安排采购,公司统计了各种奖品的价格以及选择此奖品的人数。假如你是采购人员,需要申请财务报销,请你计算出这批奖品的样本价格方差。样本方差的计算公式如下:
其中X为样本均值。
输入格式:
第一行,输入一个数字n(0
m) {
12. System.out.println(n - m);
13. return;
14. }
15. int count = 0;
16. while (n < m) {
17. if (m % 2 == 0) {
18. m /= 2;
19. count++;
20. } else {
21. m += 1;
22. m /= 2;
23. count += 2;
24. }
25. }
26. count+=n-m;
27. System.out.println(count);
28. }
29. }
算法思路:
转换后的等式有下面3种形式:表达式(含n)*2=m;表达式(含n)*2-1=m; 表达式(含n)-1=m。然后逆推,由m来求n。
这道题如果调整为将计算表达式输出,例如:(((2*2-1)*2-1)*2-1)*2-1=17,将增加一定的难度,需要用到栈(括号匹配问题)数据结构。
运行截图:
测试用例1
(((2*2-1)*2-1)*2-1)*2-1=17
测试用例2
(6-1)*2=10
(3-1)*2*2=8
3.假如有一个3*3*3的立方体,它有六个面,每个面共有九个小正方形。每小
正方形按如下规则染色:
角上的方格为red,中心的方格为green,其他的方格为blue。
初始有一个机器人站在立方体顶面的中心,面朝一个blue方格。它将接受到n条如下指令:'L':为左转90度,'R'为:右转90度,'W':为向前走一格。
机器人可以穿过立方体的棱到达另一个面。给出指令,求出机器人最后经过的面的数量(立方体一共有6个面,每一侧的9个小正方形都属于一个面)。
输入格式:
第一行共一个数字n(0
点击显示更多内容>>
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号