`
qiufeihu
  • 浏览: 34236 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C语言算法猴子吃桃问题

阅读更多

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将第一天剩下的桃子吃掉一半,又多吃了一个,以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,发现只剩下一个桃子了。编写程序求猴子第一天共摘了多少个桃子。

代码如下:

#include <stdio.h>
int main()
{
	int day,x1,x2;        /*定义 day,x1,x2 3个变量为基本整型 */
	day=9;
	x2=1;
	while(day > 0){
		x1 = (x2 + 1)*2;     /*第一天的桃子数是第二天桃子数加1后的2倍*/
		x2 = x1;             
		day--;               /*因为从后向前推所以天数递减*/
	}
	printf("The total is %d\n", x1);   /*输出桃子的总数*/
	return 0;
}

   运行结果:

   The total is 1534

分享到:
评论
1 楼 kyzaqlx 2015-07-31  
设第n天剩下桃子个数为f(n)
则f(n+1)=f(n) / 2 - 1
=> f(n+1) + 2 = [f(n) + 2] / 2
=> f(n) + 2 = [f(1) + 2] / 2 ^ (n - 1)
=> f(1) = [f(n) + 2] * 2 ^ (n - 1) - 2
因为n = 10, f(n) = f(10) = 1
所以f(1) = 3 * 2 ^ 9 - 1 = 1534

public class OJ {
    public static void main(String[] args) {
        int day = 10;
        int left = 1;
        int total = (left + 2) * (1 << (day - 1)) - 2;
        
        System.out.println(total);
    }
}

相关推荐

    C语言 算法 猴子吃桃算法

    C语言 算法 猴子吃桃

    c语言中关于猴子吃桃的问题

    根据给定的信息,本文将详细解析“猴子吃桃问题”在C语言中的实现方式,并重点讲解函数递归的应用。通过本篇文章,读者可以深入了解递归的基本概念、工作原理及其在解决实际问题时的具体应用。 ### 猴子吃桃问题...

    猴子吃桃问题c语言.猴子吃桃问题c语言

    猴子吃桃问题是一个有趣的数学和编程问题,它涉及到递归算法的应用。问题描述如下:假设有一堆桃子,猴子每天会吃掉当前剩余桃子的一半再加一个,直到桃子吃完。我们要找出在第 n 天猴子还能吃到桃子的情况下,初始...

    c语言经典编程例如猴子吃桃问题

    本资源摘要信息涵盖了五个经典的C语言编程题目,包括猴子吃桃问题、回文数问题、杨辉三角问题、加密问题和平方数问题。每个题目都包含问题描述、程序分析和源代码实现。 一、猴子吃桃问题 猴子吃桃问题是一个经典...

    猴子吃桃程序(数组算法,链表算法,递归算法)

    c语言版的猴子吃桃的源程序,用不同的方法求解桃子的总数。其中有递归算法,数组算法,链表算法。

    C语言-猴子吃桃问题代码

    猴子吃桃问题可以通过自底向上的方法来解决,即先计算出所有可能的单天吃桃情况,然后逐步合并这些情况,直到找到满足条件的解。 C语言中,我们可以定义一个函数,接收桃子总数作为参数,返回猴子吃桃的方案数。...

    数据结构课程设计(用C语言解决猴子吃桃问题)

    《数据结构课程设计——用C语言解决猴子吃桃问题》 猴子吃桃问题是经典的数学问题,也是编程领域常用于教学的实例。在这个课程设计中,贾勤同学在指导老师湛新霞的指导下,以C语言为工具,通过数组、链表和递归三种...

    C语言——猴子吃桃问题.zip

    “猴子吃桃问题”是一个经典的算法问题,它源于中国古代的一则寓言故事。故事讲述了一只猴子在河边捡到一堆桃子,它决定晚上吃掉一部分,剩下的桃子如果再吃掉一半加一,正好可以吃完。猴子不知道桃子的具体数量,但...

    猴子吃桃问题的c语言算法实现

    猴子吃桃问题是一个经典的动态规划问题,源自中国古代的智力题,常常被用来考察程序员...由于题目描述是“猴子吃桃问题的c语言算法实现”,所以这个C语言程序正好符合题目要求,展示了如何在C语言环境中解决这个问题。

    c语言编程实例,猴子吃桃算法

    利用c语言,将猴子吃桃问题用多种算法实现求解

    简单C语言五猴分桃的5种解法(附源码).txt

    简单C语言五猴分桃的5种解法 小学算术解法、迭代公式解法、 小学奥数解法、另一奥数解法、 穷举法求解

    猴子吃桃问题

    该算法是描述猴子吃桃,计算他现在拥有的桃子数,该算法为C#编写。

    猴子吃桃问题c语言.docx

    总之,猴子吃桃问题展示了递推关系在解决问题中的应用,以及如何用C语言编写算法来解决实际的数学问题。通过理解这段代码,我们可以学习到如何用编程思维来处理此类问题,并进一步了解动态规划和迭代计算的概念。

    数据结构实现猴子吃桃

    【数据结构实现猴子吃桃】这个问题是一个经典的递归算法实例,源自于数学问题,通过...猴子吃桃问题是一个生动的案例,展示了如何运用数据结构(链表)和递归算法来解决实际问题,帮助我们更好地理解和应用数据结构。

    C语言实现的猴子吃桃问题算法解决方案

    本文实例讲述了C语言实现的猴子吃桃问题。分享给大家供大家参考,具体如下: 问题: 猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前...

    C 语言编写的猴子吃桃问题.pdf

    《C语言实现的猴子吃桃问题》 猴子吃桃问题是一个经典的数学问题,它通过一个简单的递归模型展示了数量变化的规律。在这个问题中,一只猴子每天会吃掉当前桃子总数的一半再加一个,经过连续9天后,只剩下一个桃子。...

    C语言算法合集含最大公约数、最小公倍数、猴子吃桃子、百钱百鸡问题、渔夫打鱼问题、二分查找法、分块查找法、求水仙花数、统计单词个数

    在本C语言算法合集中,我们涵盖了多个经典算法和数据结构的应用,这些是计算机科学的基础,对于学习和提升编程技能至关重要。以下将详细介绍其中涉及的知识点: 1. **最大公约数(Greatest Common Divisor, GCD)与...

    猴子吃桃.含源码和解析c语言

    "猴子吃桃"问题在计算机科学中是一个经典的动态规划问题,源自中国的...总的来说,“猴子吃桃”问题是一个很好的练习动态规划和递归思维的实例,通过解决这个问题,可以加深对C语言的理解,提高算法设计和调试的能力。

    C语言实现的猴子分桃问题算法解决方案

    本文实例讲述了C语言实现的猴子分桃问题算法。分享给大家供大家参考,具体如下: 问题: 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第...

Global site tag (gtag.js) - Google Analytics