“舍罕王的失算”一题中,用等比数列求和公式无法输出正确结果
#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刚好是其最大值。
拜托各位大神了。
输出的时候将 %d 改为 %lu 看看,或者 %llu 丶忘却的年少o 发表于 2018-11-20 11:05
输出的时候将 %d 改为 %lu 看看,或者 %llu
那样的话就输出9223372036854775808,好像是long的最大值,也不是正确答案 {:10_266:}
页:
[1]