dddzy 发表于 2018-11-20 10:59:48

“舍罕王的失算”一题中,用等比数列求和公式无法输出正确结果

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(void)
{
        unsigned long long sum,weight;
        sum=(1-pow(2,64))/(1-2);
        weight=sum/25000;
        printf("舍罕王应该给宰相%d粒麦子,%d kg麦子",sum,weight);
        return 0;
}
        输出结果为0粒麦子,21473648kg麦子。我查阅unsigned long long取值范围发现2^64-1刚好是其最大值。
      拜托各位大神了。

丶忘却的年少o 发表于 2018-11-20 11:05:35

输出的时候将 %d 改为 %lu 看看,或者 %llu

dddzy 发表于 2018-11-20 11:14:53

丶忘却的年少o 发表于 2018-11-20 11:05
输出的时候将 %d 改为 %lu 看看,或者 %llu

那样的话就输出9223372036854775808,好像是long的最大值,也不是正确答案

dddzy 发表于 2018-11-20 19:08:20

{:10_266:}
页: [1]
查看完整版本: “舍罕王的失算”一题中,用等比数列求和公式无法输出正确结果