|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
程序
- #include<stdio.h>
- #include<math.h>
- int main()
- {
- unsigned long long sum = 0,weight,temp;
- for(int i = 0 ; i < 64 ; i ++)
- {
- //temp = pow(2,i);
- sum += pow(2,i);
- }
- weight = sum/25000;
- printf("舍罕王要兑现他的许诺共要%llu粒麦子赏赐他的宰相\n",sum);
- printf("如果每25000粒麦子重1kg,那么舍罕王应该给予达依尔%llu公斤麦子\n",weight);
- return 0;
- }
复制代码
结果
舍罕王要兑现他的许诺共要0粒麦子赏赐他的宰相
如果每25000粒麦子重1kg,那么舍罕王应该给予达依尔0公斤麦子
Process returned 0 (0x0) execution time : 1.046 s
Press any key to continue.
数据类型错误 pow 函数 的 参数和返回值都是 double 类型!
- #include<stdio.h>
- #include<math.h>
- int main()
- {
- double sum = 0,weight,temp;
- int i = 0 ;
- for(i = 0 ; i < 64 ; i ++)
- {
- //temp = pow(2,i);
- sum += pow(2.0,(double)i);
- }
- weight = sum/25000;
- printf("舍罕王要兑现他的许诺共要%f粒麦子赏赐他的宰相\n",sum);
- printf("如果每25000粒麦子重1kg,那么舍罕王应该给予达依尔%f公斤麦子\n",weight);
- return 0;
- }
复制代码
需要说明的是对于循环语句i处的修改是因为我的编译器不支持在循环中定义i,所以我修改到循环外定义,对本问题无影响。
另外我不确定double是否满足这道题的数据长度要求,C99标准有 long double 这个数据类型,输入出时需要使用%Lf(区别于 double 输入 %lf 输出 %f )
如果long double 仍然不够,你可以了解一下 高精度算法 ,但是这样就需要你重新编写pow函数
|
-
|