萌新,帮帮孩子吧
这是咋回事呢,为什么我就算不到结果?求大佬解惑。 2的64次幂太大了,ull也装不下 if 改成 while 怎么变成if (i < 64)了..这样只会执行一次改成while (i < 64)
还有,结果连unsigned long long也装不下的,所以输出的结果并不是最终答案。 qiuyouzhi 发表于 2020-7-3 11:48
怎么变成if (i < 64)了..这样只会执行一次
改成while (i < 64)
还有,结果连unsigned long long也装不下 ...
结果是 unsigned long long 的最大值,能装下。 if -> while
pow -> powl 永恒的蓝色梦想 发表于 2020-7-3 12:08
结果是 unsigned long long 的最大值,能装下。
你或许理解错我意思了?
其实这里计算得到的麦子数(18446744073709551615 )并非正确的结果,因为 unsigned long long 能够表示最大的数字是 18446744073709551615,你看,连 C 语言也无能为力了…… qiuyouzhi 发表于 2020-7-3 12:13
你或许理解错我意思了?
你 确 定 ?>>> sum(pow(2, i) for i in range(64))
18446744073709551615 wp231957 发表于 2020-7-3 11:36
2的64次幂太大了,ull也装不下
大数需要知己想办法把数据存储掉,可以参看:
https://fishc.com.cn/thread-173377-1-1.html qiuyouzhi 发表于 2020-7-3 11:48
怎么变成if (i < 64)了..这样只会执行一次
改成while (i < 64)
还有,结果连unsigned long long也装不下 ...
谢谢
永恒的蓝色梦想 发表于 2020-7-3 11:43
if 改成 while
多谢指点 清淤清宇 发表于 2020-7-3 16:53
谢谢
如果问题解决了,就设个最佳答案吧~ qiuyouzhi 发表于 2020-7-3 16:54
如果问题解决了,就设个最佳答案吧~
新人,怎么设置最佳答案啊 清淤清宇 发表于 2020-7-4 08:28
新人,怎么设置最佳答案啊
额,你这个求助帖发错格式了..应该是问题求助类型发出来
你却搞了个空类型,这次就算了吧 有许多问题;1:if改成while,if语句只执行一次,要改成while语句
2:unsigned long long int 装不下pow(2,64), 改成while(i < 64)
页:
[1]