C语言猴子吃桃问题

Sanco 2001-12-15 01:44:47
猴子第一天摘下若干个桃子,当即吃一半,又多吃一个,以后每天都吃了前一天剩下的一半零一个。到第十天时,只剩下一个桃子。问第一天摘了多少桃子?
main()
{
int i,m,n;
for(n=2;;n++)
{ m=n;
for(i=1;i<10;i++)
n=n/2-1; /n为吃剩下的桃/
if(n==1) /第十天,剩下一个/
break;
}
printf("it is %d\n",m); /m为符合条件的/
}
运行后就死机,不知是什么原因?
...全文
771 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kangji 2001-12-16
  • 打赏
  • 举报
回复
main()
{
unsigned int i,x=1;
for(i=0;i<9;i++)
{
x=(x+1)*2;
}
printf("x=%d",x);
}
还可以这么算,简单明了!
Sanco 2001-12-16
  • 打赏
  • 举报
回复
thank you !讨教了
hh97888675 2001-12-15
  • 打赏
  • 举报
回复
break应该在第二个for外,上面的程序的break跳出没法作用,所以死循环
Roage 2001-12-15
  • 打赏
  • 举报
回复
多麻烦
#include<stdiostr.h>

main(){
cout<<"1534";
return 0;
}
axial 2001-12-15
  • 打赏
  • 举报
回复
哦!我考的是: yug(寒鹤) 的程序。sorry!
awinder 2001-12-15
  • 打赏
  • 举报
回复
sdmity(哈哈):
break在第二个for外面!眼睛不大好使吧?只是break的条件不能成立所以死循环。
yanxb 2001-12-15
  • 打赏
  • 举报
回复
如此n不可能为1,也就是说永远不可能跳出第一个循环。
sdmity 2001-12-15
  • 打赏
  • 举报
回复
就是啊,
两 个for啊,
那个break
只是跳出了里面的那一个,
而外面的那个又没有结束条件,
不是死的才怪
axial 2001-12-15
  • 打赏
  • 举报
回复
程序没死啊?
答案是1534
对着呢!
yaoweitao 2001-12-15
  • 打赏
  • 举报
回复
写完程序,读一下,你不觉得你的程序是死循环吗
chulizhi 2001-12-15
  • 打赏
  • 举报
回复
int f(x)
int x;
{int f;
if(x==10)return(1);
f=2(*f(x+1)+1);
return(f);
}
main()
{
printf("%d",f(1));
}
yug 2001-12-15
  • 打赏
  • 举报
回复
搞清楚谁是循环变量嘛!

main()
{
int i,m,n;
for(n=2;;n++)
{ m=n;
for(i=1;i<10;i++)
m=m/2-1; /*n为吃剩下的桃*/
if(m==1) /*第十天,剩下一个*/
break;
}
printf("it is %d\n",n); /*n为符合条件的*/
}

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧