题目描述
关于小青蛙爬井的故事,你应该早就听过了:井深10尺,小青蛙从井底向上爬,每个白天向上爬3尺,每个晚上又滑下来2尺,然后问你第几天它能爬上来。答案是第8天。
现在,那只著名的小青蛙又回来了,它现在每个白天已经可以向上爬m(2 <= m <=10)尺了,当然,晚上还是要下滑n(1 <= n < m )尺的。如果告诉你井深h(10 <= h <= 2000000000)尺,请计算一下,现在,它第几天可以爬上来。
输入输出格式
输入格式:
有三个整数,分别表示 m、 n、 h。
输出格式:
只有一个整数,表示第几天可以爬上来。
输入输出样例
输入样例#1:
3 2 10
输出样例#1:
8
小青蛙爬井 c语言
答案:1 悬赏:0
解决时间 2021-02-20 05:05
- 提问者网友:逝爱
- 2021-02-19 15:31
最佳答案
- 二级知识专家网友:一只傻青衣
- 2021-02-19 16:47
你错在把scanf语句放在了while里面,而while的脱离条件又是u、n、d至少有一个为0,导致
你输入一组正常数据时会一直在循环中出不来,循环的内容就是重复要求输入n、u、d的值。
可以这样改:
#include<stdio.h>
int main()
{
int n,u,d,t,s,T=0;
scanf("%d,%d,%d",&n,&u,&d);
while(1)
if((n||u||d)!=0)
break;
t=0,s=0;
while(s<n)
{
t=t+1;
s=(u-d)*t+u;
}
T=2*t+1;
printf("结果是:%d\n",T);
return 0;
}
运行结果如图:
你输入一组正常数据时会一直在循环中出不来,循环的内容就是重复要求输入n、u、d的值。
可以这样改:
#include<stdio.h>
int main()
{
int n,u,d,t,s,T=0;
scanf("%d,%d,%d",&n,&u,&d);
while(1)
if((n||u||d)!=0)
break;
t=0,s=0;
while(s<n)
{
t=t+1;
s=(u-d)*t+u;
}
T=2*t+1;
printf("结果是:%d\n",T);
return 0;
}
运行结果如图:
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |