郑州轻工业大学oj题解(c语言)1054(|郑州轻工业大学oj题解(c语言)1054: 猴子吃桃 倒推入门问题)
【郑州轻工业大学oj题解(c语言)1054(|郑州轻工业大学oj题解(c语言)1054: 猴子吃桃 倒推入门问题)】在前几周的作业里,同学们在做while类循环作业时,应该有接触过类似倒推的问题。问题内容是和这题一模一样的。
文章图片
image.png 1054: 猴子吃桃
- 题目描述
悟空第一天摘下桃子若干,当即吃掉一半,还不过瘾,又多吃一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢? - 输入
输入一个数n(1<=n<=30)。 - 输出
输出第一天的桃子个数。 - 参考代码:
#include
int main()
{
int i,n,s;
s=1;
scanf("%d",&n);
for(i=n;
i>1;
i--){
s=(s+1)*2;
}
printf("%d",s);
return 0;
}
- 代码解析:
对于解决倒推问题,我们先从题目入手,弄清已知量分别是什么。
根据题目我们可以知道,最后一天,也就是第n天的时候,悟空的桃子还剩下一个。也就是初始值为1。根据题目,他每天吃掉前一天剩下的一半多一个。反过来说,前一天的桃子,是第二天的多一个的两倍。
那么,我们在计算时,只要我们从第n天往回倒推,每少一天,则把桃子的数量先+1再*2,待天数=1时,就可以知道第一天的桃子个数。
本题在倒推题目中属于较为基础的一种,这里所教的代码只强调逻辑,不强调死记硬背,希望大家以后遇到同样或者类似的题目,能举一反三。灵活运用循环语句完成倒推。
- 本题用while循环也可以完成,如果你可以做到,不妨把你的答案发到留言栏与大家一同分享与学习。
推荐阅读
- 螃蟹和这些食物同吃,轻则腹泻、重则中毒!要小心哦~
- 慢煮岁月,浅思淡行
- 年轻人,干了孤独这杯酒
- 松软可口易消化,无需烤箱超简单,新手麻麻也能轻松成功~
- 年轻人对未来迷茫时该怎么办()
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- 生命中最迷人的部分轻拿轻放
- 知若不知
- 年轻的我们应该享受还是奋斗()
- 医生随笔(232)不要轻易得罪底层人