|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 白牡丹秀色可餐 于 2019-8-10 00:57 编辑
#include<stdio.h>
#include<math.h>
int main()
{
unsigned int result;
int i;
i = 0;
while (i<=63)
{
result = result^2,
i = i+1;
if (i>63)
break;
}
result = result/25000;
printf("舍罕王需要付给达依尔%dkg麦子",result);
return 0;
}
请问这个代码有什么错误吗?
我把63改为64后result的最终值依旧没有什么变化
#include<stdio.h>
#include<math.h>
int main()
{
unsigned int result;
int i;
result = 2;
i = 0;
while (i<=63)
{
result = result^i,
i = i+1;
if (i>63)
break;
}
result = result/25000;
printf("舍罕王需要付给达依尔%ukg麦子",result);
return 0;
}
还有这一个的结果是0,该怎么改?
- #include<stdio.h>
- #include <stdlib.h>
- int main()
- {
- long result, re=0;
- int i,j;
- result = 2;
- for(i=1;i<=63;i++)
- {
- for(j=1;j<i;j++)
- {
- re = result*result;
- }
- result += re;
- }
- result = result/25000;
- printf("舍罕王需要付给达依尔 %u kg麦子\n",result);
- system("pause");
- }
复制代码
改成这样应该就没问题了。不知道你的意思是不是每次运算第几次的次方再累加,最后除以25000。
在这里我记得没有次方的“^”操作,所以我们想要做到这个效果则需要用循环来把每次与自己相乘的结果全乘起来。并且math也可以不引用
因为是要累加,所以有2个循环:里层的是算每次次方相乘的结果;外层是把每次相乘过后的结果累加。
另外建议你使用long型来做这个,数比较大
|
|