一、题目
取球博弈
两个人玩取球的游戏。
 一共有N个球,每人轮流取球,每次可取集合{n1,n2,n3}中的任何一个数目。
 如果无法继续取球,则游戏结束。
 此时,持有奇数个球的一方获胜。
 如果两人都是奇数,则为平局。
假设双方都采用最聪明的取法,
 第一个取球的人一定能赢吗?
 试编程解决这个问题。
输入格式:
 第一行3个正整数n1 n2 n3,空格分开,表示每次可取的数目 (0<n1,n2,n3<100)
 第二行5个正整数x1 x2 ... x5,空格分开,表示5局的初始球数(0<xi<1000)
输出格式:
 一行5个字符,空格分开。分别表示每局先取球的人能否获胜。
 能获胜则输出+,
 次之,如有办法逼平对手,输出0,
 无论如何都会输,则输出-
例如,输入:
 1 2 3
 1 2 3 4 5
程序应该输出:
 + 0 + 0 -
再例如,输入:
 1 4 5
 10 11 12 13 15
程序应该输出:
 0 - 0 + +
再例如,输入:
 2 3 5
 7 8 9 10 11
程序应该输出:
 + 0 0 0 0
 资源约定:
 峰值内存消耗(含虚拟机) < 256M
 CPU消耗  < 3000ms
 请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
 注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
 注意:主类的名字必须是:Main,否则按无效代码处理。
二、EXCEL表格
| **** | 180.9 | 88 | 88 | 15919.2 | 
| **** | 10.25 | 65 | 65 | 666.25 | 
| **** | 56.14 | 9 | 90 | 5052.6 | 
| **** | 104.65 | 9 | 90 | 9418.5 | 
| **** | 100.3 | 88 | 88 | 8826.4 | 
| **** | 297.15 | 5 | 50 | 14857.5 | 
| **** | 26.75 | 65 | 65 | 1738.75 | 
| **** | 130.62 | 5 | 50 | 6531 | 
| **** | 240.28 | 58 | 58 | 13936.24 | 
| **** | 270.62 | 8 | 80 | 21649.6 | 
| **** | 115.87 | 88 | 88 | 10196.56 | 
| **** | 247.34 | 95 | 95 | 23497.3 | 
| **** | 73.21 | 9 | 90 | 6588.9 | 
| **** | 101 | 5 | 50 | 5050 | 
| **** | 79.54 | 5 | 50 | 3977 | 
| **** | 278.44 | 7 | 70 | 19490.8 | 
| **** | 199.26 | 5 | 50 | 9963 | 
| **** | 12.97 | 9 | 90 | 1167.3 | 
| **** | 166.3 | 78 | 78 | 12971.4 | 
| **** | 125.5 | 58 | 58 | 7279 | 
| **** | 84.98 | 9 | 90 | 7648.2 | 
| **** | 113.35 | 68 | 68 | 7707.8 | 
| **** | 166.57 | 5 | 50 | 8328.5 | 
| **** | 42.56 | 9 | 90 | 3830.4 | 
| **** | 81.9 | 95 | 95 | 7780.5 | 
| **** | 131.78 | 8 | 80 | 10542.4 | 
| **** | 255.89 | 78 | 78 | 19959.42 | 
| **** | 109.17 | 9 | 90 | 9825.3 | 
| **** | 146.69 | 68 | 68 | 9974.92 | 
| **** | 139.33 | 65 | 65 | 9056.45 | 
| **** | 141.16 | 78 | 78 | 11010.48 | 
| **** | 154.74 | 8 | 80 | 12379.2 | 
| **** | 59.42 | 8 | 80 | 4753.6 | 
| **** | 85.44 | 68 | 68 | 5809.92 | 
| **** | 293.7 | 88 | 88 | 25845.6 | 
| **** | 261.79 | 65 | 65 | 17016.35 | 
| **** | 11.3 | 88 | 88 | 994.4 | 
| **** | 268.27 | 58 | 58 | 15559.66 | 
| **** | 128.29 | 88 | 88 | 11289.52 | 
| **** | 251.03 | 8 | 80 | 20082.4 | 
| **** | 208.39 | 75 | 75 | 15629.25 | 
| **** | 128.88 | 75 | 75 | 9666 | 
| **** | 62.06 | 9 | 90 | 5585.4 | 
| **** | 225.87 | 75 | 75 | 16940.25 | 
| **** | 12.89 | 75 | 75 | 966.75 | 
| **** | 34.28 | 75 | 75 | 2571 | 
| **** | 62.16 | 58 | 58 | 3605.28 | 
| **** | 129.12 | 5 | 50 | 6456 | 
| **** | 218.37 | 5 | 50 | 10918.5 | 
| **** | 289.69 | 8 | 80 | 23175.2 | 
三、反思
1.这种需要简单计算的问题,我们可以使用excel表格,先把前三列的的复制在表格中(这时候都在一个格子中,我们需要对他进行分列),点击最上面的一行的 数据,复制数据点击分列,选中分隔符号,点击下一步,勾选中空格,下一步,下一步完成


 
2.下一步我们对数据进行操作
ctrl+h:打开查找和替换,半价替换成5,折替换成无


选择C列的第一个格子,在上面输入=C1&REPT("0",2-len(C1))


最后选中E,下面就可以看到总和,在缩小100倍,就是我们的总钱数(因为我们乘的折扣是扩大100的)

金额为 513685.95,最终答案填入5200