美文网首页C语言新手家园(1万钻以下)
郑州轻工业大学oj题解(c语言)1054: 猴子吃桃 倒推入门问

郑州轻工业大学oj题解(c语言)1054: 猴子吃桃 倒推入门问

作者: 缘点点 | 来源:发表于2019-12-04 15:16 被阅读0次

    在前几周的作业里,同学们在做while类循环作业时,应该有接触过类似倒推的问题。问题内容是和这题一模一样的。


    image.png

    1054: 猴子吃桃

    • 题目描述
      悟空第一天摘下桃子若干,当即吃掉一半,还不过瘾,又多吃一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?
    • 输入
      输入一个数n(1<=n<=30)。
    • 输出
      输出第一天的桃子个数。
    • 参考代码:
    #include<stdio.h>
    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循环也可以完成,如果你可以做到,不妨把你的答案发到留言栏与大家一同分享与学习。

    相关文章

      网友评论

        本文标题:郑州轻工业大学oj题解(c语言)1054: 猴子吃桃 倒推入门问

        本文链接:https://www.haomeiwen.com/subject/ozhlgctx.html