C语言编程猴子吃桃子问题
请问我哪里写错了,我想求第100天猴子吃多少桃子。为什么返回值是-2猴子吃桃子问题:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃子吃...
请问我哪里写错了,我想求第100天猴子吃多少桃子。为什么返回值是-2
猴子吃桃子问题:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第100天在想吃的时候就剩一个桃子了,求第一天共摘下来多少个桃子? 展开
猴子吃桃子问题:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第100天在想吃的时候就剩一个桃子了,求第一天共摘下来多少个桃子? 展开
13个回答
展开全部
假设循环了100次,每次都乘了个2,那么得到的就是2的100次幂,这个数肯定是一个很大的数,超过了int能表示的范围,可以使用大数加法和乘法计算试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样算的话,x1至少是1*2*2*2……*2,比2的100次方还大,肯定超过了int的范围了(稍微超过范围后会变成负数)
int的范围是2的31次方,long long也只有2的63次方。
你可以试着把100改小一些(注意数据类型所能表示的最大范围),把int改成long long(long long输入输出的时候用%lld或者%I64d)
int的范围是2的31次方,long long也只有2的63次方。
你可以试着把100改小一些(注意数据类型所能表示的最大范围),把int改成long long(long long输入输出的时候用%lld或者%I64d)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-09-11
展开全部
题目出得有问题,100天吃完,就至少有 2^100 = 1267650600228229401496703205376 个桃子。实际上根本不可能摘那么多。你 x2 可以使用 unsigned long 型试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-09-13
展开全部
代码没错, 是天数过多, 最终结果数据太大, 表示不出来
或者x1,x2类型设定为double, printf("%.0lf",x1); ----->注意是点零LF(LF要小写)
或者x1,x2类型设定为double, printf("%.0lf",x1); ----->注意是点零LF(LF要小写)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询