围棋与小麦"/>
c之围棋与小麦
古时候,印度有个国王很爱玩。一天,他对大臣们说,希望得到一种玩不腻的玩意儿,谁能贡献给他,将有重赏。
不久,有个聪明的大臣向他献上一种棋子,棋盘上有64个格子,棋子上刻着“皇帝”、“皇后”、“车”、“马”、“炮”等字。下这种棋子,是玩一种变化无穷的游戏,确实让人百玩不厌。国王就对那个聪明的大臣说:“我要重赏你。说吧,你要什么,我都能满足你。”
那个大臣说:“我只要些麦粒。”
“麦粒?哈,你要多少呢?”
“国王陛下,你在第一格棋盘上放1粒,第二格上放2粒,第三格上放4粒,第四格上放8粒……照这样放下去,把64格棋盘都放满就行了。”
国王想:这能要多少呢?最多几百斤吧。小意思,就对管粮食的大臣说:“你去拿几麻袋的麦子赏给他吧。”
管粮食的大臣计算了一下,忽然大惊失色,忙向国王报告道:“照这样的计算,把我们全国所有的粮食全给他,还差得远呢!”
说完把计算题列给国王看,得数等于18,446,774,073,709,551,615(颗麦粒)
1立方米麦粒大约有1500万粒,那么照这样计算,得给那位大臣12000亿立方米,这些麦子比全世界2000年生产的麦子的总和还多。
#include <stdio.h>#define SQUARES 64int main(void)
{const double CROP = 2E16; // 世界小麦年粒数double current, total;int count = 1;printf("square grains total ");printf("fraction of \n");printf(" added grains ");printf("world total\n");total = current = 1.0;printf("%4d %13.2e %12.2e %12.2e\n", count, current, total, total / CROP);while (count < SQUARES) {count = count + 1;current = 2.0 * current; // 谷粒翻倍total = total + current;printf("%4d %13.2e %12.2e %12.2e\n", count, current, total, total / CROP);}printf("That's all.\n");return 0;
}
square grains total fraction ofadded grains world total1 1.00e+00 1.00e+00 5.00e-172 2.00e+00 3.00e+00 1.50e-163 4.00e+00 7.00e+00 3.50e-164 8.00e+00 1.50e+01 7.50e-165 1.60e+01 3.10e+01 1.55e-156 3.20e+01 6.30e+01 3.15e-157 6.40e+01 1.27e+02 6.35e-158 1.28e+02 2.55e+02 1.27e-149 2.56e+02 5.11e+02 2.55e-1410 5.12e+02 1.02e+03 5.12e-1411 1.02e+03 2.05e+03 1.02e-1312 2.05e+03 4.10e+03 2.05e-1313 4.10e+03 8.19e+03 4.10e-1314 8.19e+03 1.64e+04 8.19e-1315 1.64e+04 3.28e+04 1.64e-1216 3.28e+04 6.55e+04 3.28e-1217 6.55e+04 1.31e+05 6.55e-1218 1.31e+05 2.62e+05 1.31e-1119 2.62e+05 5.24e+05 2.62e-1120 5.24e+05 1.05e+06 5.24e-1121 1.05e+06 2.10e+06 1.05e-1022 2.10e+06 4.19e+06 2.10e-1023 4.19e+06 8.39e+06 4.19e-1024 8.39e+06 1.68e+07 8.39e-1025 1.68e+07 3.36e+07 1.68e-0926 3.36e+07 6.71e+07 3.36e-0927 6.71e+07 1.34e+08 6.71e-0928 1.34e+08 2.68e+08 1.34e-0829 2.68e+08 5.37e+08 2.68e-0830 5.37e+08 1.07e+09 5.37e-0831 1.07e+09 2.15e+09 1.07e-0732 2.15e+09 4.29e+09 2.15e-0733 4.29e+09 8.59e+09 4.29e-0734 8.59e+09 1.72e+10 8.59e-0735 1.72e+10 3.44e+10 1.72e-0636 3.44e+10 6.87e+10 3.44e-0637 6.87e+10 1.37e+11 6.87e-0638 1.37e+11 2.75e+11 1.37e-0539 2.75e+11 5.50e+11 2.75e-0540 5.50e+11 1.10e+12 5.50e-0541 1.10e+12 2.20e+12 1.10e-0442 2.20e+12 4.40e+12 2.20e-0443 4.40e+12 8.80e+12 4.40e-0444 8.80e+12 1.76e+13 8.80e-0445 1.76e+13 3.52e+13 1.76e-0346 3.52e+13 7.04e+13 3.52e-0347 7.04e+13 1.41e+14 7.04e-0348 1.41e+14 2.81e+14 1.41e-0249 2.81e+14 5.63e+14 2.81e-0250 5.63e+14 1.13e+15 5.63e-0251 1.13e+15 2.25e+15 1.13e-0152 2.25e+15 4.50e+15 2.25e-0153 4.50e+15 9.01e+15 4.50e-0154 9.01e+15 1.80e+16 9.01e-0155 1.80e+16 3.60e+16 1.80e+0056 3.60e+16 7.21e+16 3.60e+0057 7.21e+16 1.44e+17 7.21e+0058 1.44e+17 2.88e+17 1.44e+0159 2.88e+17 5.76e+17 2.88e+0160 5.76e+17 1.15e+18 5.76e+0161 1.15e+18 2.31e+18 1.15e+0262 2.31e+18 4.61e+18 2.31e+0263 4.61e+18 9.22e+18 4.61e+0264 9.22e+18 1.84e+19 9.22e+02
That's all.
更多推荐
c之围棋与小麦
发布评论