猴子偷桃c语言编程软件,c语言经典算法——猴子偷桃问题

题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

算法分析://初始桃子数为sum

第一次:sum=5*x1+1

第二次:4*x1=5*x2+1

第三次:4*x2=5*x3+1

第四次:4*x3=5*x4+1

第五次:4*x4=5*x5+1

第五次分配结束:剩下4*x5个桃子,而x5>=1,故i=4*x5>=4 。每次向上推j=(i/4)*5+1;i=j;每次上推结束后判断j%4是否等于0,如果为0则继续上推,否则更新i,直到找到能够完成五次上推的整数i,最后可以得到最初的桃子数。

C语言程序:

#include

int main(int agrc, char*agrv[])

{

int i, m, j, k, count;

for (i = ; i

/*i为5个猴子分配桃子后最后剩余的桃子,必须为4的倍数,然后以此为基础,

向上推5次,如果刚好能够推到第五次,则此剩余的桃子数i是满足条件的,否则换一个

剩余的桃子数,直到找到符合条件的最小剩余桃子数*/

{

count = ;

m = i;

for (k = ; k

{

j = i / * + ;

i = j;

if (j % == )

count++;

else

break;

}

i = m;

if (count == )

{

printf("原来最少的桃子数为:%d\n", j);

break;

}

}

system("pause");

return ;

}

Python经典算法-猴子吃桃-思路分析

问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个.第二天早上又将剩下的桃子吃了一半,还是不过瘾又多吃了一个.以后每天都吃前一天剩下的一半再加一个.到第10天刚好剩一个.问猴子第一天 ...

C语言经典算法 - 多维矩阵转一维矩阵的代码

下边内容内容是关于C语言经典算法 - 多维矩阵转一维矩阵的内容,应该能对码农也有好处. #include #include int mai ...

C语言经典算法100例

[程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. ...

C语言经典算法100例(二)

11.判断某一年是否是闰年. //判断某一年份是否是闰年 int IsLeapYear(int year) { return (year % 400 == 0 || (year % 4 == 0) & ...

Java例题_17 猴子偷桃问题

1 /*17 [程序 17 猴子吃桃问题] 2 题目:猴子吃桃问题 3 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 4 第二天早上又将剩下的桃子吃掉一半,又多吃了一个. 5 以后每天 ...

C语言经典算法100例(一)

C语言中有有许多经典的算法,这些算法都是许多人的智慧结晶,也是编程中常用的算法,这里面包含了众多算法思想,掌握这些算法,对于学习更高级的.更难的算法都会有很大的帮助,会为自己的算法学习打下坚实的基础. ...

c语言经典算法——查找一个整数数组中第二大数

题目: 实现一个函数,查找一个整数数组中第二大数. 算法思想: 设置两个变量max1和max2,用来保存最大数和第二大数,然后将数组剩余的数依次与这两个数比较,如果这个数a比max1大,则先将max1 ...

c语言经典算法—求0—7 所能组成的奇数个数

题目:求0—7 所能组成的奇数个数. 算法思想:这个问题其实是一个排列组合的问题,设这个数为sun=a1a2a3a4a5a6a7a8,a1-a8表示这个数的某位的数值,当一个数的最后一位为奇数时,那么 ...

C语言经典算法100例(三)

1.河内之塔 说明河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市:1883年法国数学家 Edoua ...

随机推荐

Android消息传递之基于RxJava实现一个EventBus - RxBus

前言: 上篇文章学习了Android事件总线管理开源框架EventBus,EventBus的出现大大降低了开发成本以及开发难度,今天我们就利用目前大红大紫的RxJava来实现一下类似EventBus事 ...

Nginx 常用伪静态配置

1. /a/b?c=d => index.php?_a=a&_m=b&c=d 2. /xxx/detail-yyy.html => index.php?_a=xxx& ...

PHP 文件上传的综合实例

1.upload.php

《Java数据结构与算法》笔记-CH3简单排序

class ArrayBub { private long[] arr; private int nElement; public ArrayBub(int size) { arr = new lon ...

ubuntu 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)

在用sudo apt-get install kmymoney2安装软件kmymoney2时,由于速度太慢,想换个软件源,直接关闭了终端,apt-get但进程没有结束,结果终端提示:"E: ...

python基础学习笔记6--异常

异常 1.什么是异常?  python用异常对象来表示( exception object)异常情况.如果异常没有被处理或扑捉,程序就会所谓的回溯(TraceBack,一种错误信息)而终止执行: 2. ...

monkey日志分析

Monkey测试的og分析,我们可以通过几个关键词来判断测试是否通过.1)Monkey finished打开LOG,查看log的最下端,是否有类似以下字段:## Network stats: elap ...

Python虚拟环境笔记

虚拟环境 为什么需要虚拟环境: 到目前位置,我们所有的第三方包安装都是直接通过pip install xx的方式进行安装的,这样安装会将那个包安装到你的系统级的Python环境中.但是这样有一个问题, ...

Python startswith() 函数 判断字符串开头

Python startswith() 函数 判断字符串开头 函数:startswith() 作用:判断字符串是否以指定字符或子字符串开头 一.函数说明语法:string.startswith(str ...

你可能感兴趣的:(猴子偷桃c语言编程软件)