本帖最后由 柿子饼同学 于 2022-7-16 21:54 编辑
知识 : 数据范围 特别 , 特别, 特别 大的时候可以用(当数据只有正数时 , 因为unsigned把原来long long 的符号位也拿来存值了 , 所以不能表示负数)类型存放
第一个放一粒 , 之后每个格子都是前面的两倍,易得:// 先循环 i 从 0 到 63
ans += pow(2, i);
然后 unsigned long long 用 printf 输出要用 %llu
其中两个 l 就是 long 的首字母 ,u 是 unsigned 首字母#include <stdio.h>
#include <math.h>
int main()
{
unsigned long long sum = 0;
unsigned long long temp;
unsigned long long weight;
int i;
for (i=0; i < 64; i++)
{
temp = pow(2, i);
sum = sum + temp;
}
weight = sum / 25000;
printf("舍罕王应该给予达依尔%llu粒麦子!\n", sum);
printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n", weight);
return 0;
}
|