第一章-实例7-猴子吃桃问题

一群猴子摘了一堆桃子,它们每天都吃当前桃子的一半且多吃一个,到了第10天就只剩下一个桃子。求原来有多少个

个人感觉自己的做法比较好

自己的做法:

//一群猴子摘了一堆桃子,它们每天都吃当前桃子的一半且多吃一个,到了第10天就只剩下一个桃子。求原来有多少个桃子
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int count=0;
    int sum=0;
    int b=0;
    printf("请输入原来有多少个桃子:\n");
    scanf("%d",&count);
    printf("请输入一共吃了几次:\n");
    scanf("%d",&b);
    if(count<0)
    {
        printf("您输入的有误\n");
    }
    else{
        sum=account(count,b);
        printf("原来桃子个数为%d",sum);
    }

    return 0;
}

int account(count,b)
{
    int a=0,i=0;
    a=count;
    i=b;
    for(i=b;i>0;i--){
        a++;
        a=a*2;
    }
    return a;

}

标准答案:


#include <stdio.h>
#include <stdlib.h>

int main(int argc,char** argv)
{
    int total=0;        //记录桃子总数
    int eat_time=0;     //记录猴子在数桃子前吃了多少次桃子  

    printf("请输入最后剩余桃子数:");
    scanf("%d",&total);

    while(true)
    {
        printf("请输入数桃子之前猴子吃了多少次了?");
        scanf("%d",&eat_time);
        if(eat_time<0)
        {
            printf("您输入的次数有误!\n");
            continue;
        }
        else
            break;
    }

    while(eat_time>0)
    {
        total=2*(total+1);
        eat_time--;
    };

    printf("猴子总共的桃子数目为:%d\n",total);

    system("pause");
    return 0;
}

原文地址:https://www.cnblogs.com/FangXu1998/p/12150779.html

时间: 2024-11-06 15:37:48

第一章-实例7-猴子吃桃问题的相关文章

循环-16. 猴子吃桃问题

循环-16. 猴子吃桃问题(15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 徐镜春(浙江大学) 一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个:第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半加一个.到第N天早上想再吃时,见只剩下一个桃子了.问:第一天共摘了多少个桃子? 输入格式: 输入在一行中给出正整数N(1<N<=10). 输出格式: 在一行中输出第一天共摘了多少

猴子吃桃问题

题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下 的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. 程序分析:采取逆向思维的方法,从后往前推断. 1 package com.li.FiftyAlgorthm; 2 3 /** 4 * 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾, 又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了

猴子吃桃问题。

题目描述 猴子吃桃问题.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个. 第二天早上又将剩下的桃子吃掉一半,又多吃一个.以后每天早上都吃了前一天剩下的一半零一个. 到第N天早上想再吃时,见只剩下一个桃子了.求第一天共摘多少桃子. 输入 N 输出 桃子总数 样例输入 10 样例输出 1534 代码:#include<stdio.h>int main(){    int N,i,sum=1;    scanf("%d",&N);     for(i=2;

C语言之猴子吃桃

猴子吃桃问题.猴子第一天摘下若干个桃子,当即吃了一半,好不过瘾,又多吃了一个.第二天早上又吃了剩下的桃子的一半,又多吃了一个.以后每天都吃了前一天剩下的一半零一个,到第 10 天早上想再吃的时候,就剩下一个桃子.求第一天共摘多少个桃子. 代码实现: #include <stdio.h> int sum_peach(const int n,int sum) {  int i=0;  for(i=n;i>0;i--)  {   sum=2*sum+1;  }  return sum; } i

兔子、棋盘放粮食、猴子吃桃

static void Main19篮球弹起的高度(string[] args) { //蓝球从5米高的地方落下,每次弹起的高度是上次的一半,问第n次弹起的高度? Console.WriteLine("请问弹起了几次?"); int n = Convert.ToInt32(Console.ReadLine()); double j = 5.0; for (int i = 0; i <= n - 1; i++) { j = j / 2; Console.WriteLine(j);

猴子吃桃问题,简单循环,函数

题目描述 猴子吃桃问题.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个. 第二天早上又将剩下的桃子吃掉一半,又多吃一个.以后每天早上都吃了前一天剩下的一半零一个. 到第N天早上想再吃时,见只剩下一个桃子了.求第一天共摘多少桃子. 输入 N 输出 桃子总数 样例输入 10 样例输出 1534 此题反向思维,由最后一天反推,使用库函数解决 #include<iostream> #include<math.h> using namespace std; int main(

Python练习题 016:猴子吃桃

[Python练习题 016] 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. -------------------------------------------------- 这题得倒着推.第10天还没吃,就剩1个,说明第9天吃完一半再吃1个还剩1个,假设第9天还没吃之前有桃子p个,可得:p * 1/2 -

趣味案例之猴子吃桃

[问题描述] 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将第一天剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半后又多吃一个.到第10天早上想再吃时,发现只剩下一个桃子了. 求猴子第一天共摘了多少个桃子. [设计思路]  第1天的桃子数是第2天的桃子数加1后的2倍,第2天的桃子数是第3天的桃子数加1后的2倍,......,一般地,第k天的桃子数是第k+1天的桃子数加1后的2倍. 设第k天的桃子数是t(k),则有递推关系t(k) = (t(k

猴子吃桃--------两个猴子吃桃问题解决的详细描述

(1)猴子吃桃问题1. 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃一个.以后每天早上都吃了前一天剩下的一半另加一个.到第10天早上再想吃时,就只剩一个桃子了.求第一天摘了多少桃子. /* 猴子吃桃问题1. 问题描述:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个. 第二天早上又将剩下的桃子吃掉一半,又多吃一个. 以后每天早上都吃了前一天剩下的一半另加一个. 到第10天早上再想吃时,就只剩一个桃子了. 求第一天摘了多少桃