五只猴子采得一堆桃子,半夜里第一只猴子偷偷起来把桃平均分成五分,发现还多一个,它吃了哪个桃子,还拿走其中的一份,第二只猴子起来又把桃子分成五分,还多一个,它吃了那个桃子,有拿走其中的一份,第三第四第五只猴子都如此做了,请问这堆桃子有多少个。

(新人)

在参考了一些经典解法、研究了该问题的过程后,以下为一些自认为较为简洁明白的解法程序

1.利用总式子为整数,进行枚举循环。

#include <stdio.h>
#include <stdlib.h>
int main()
{double a=2;int i,j,k;for (i = 0; i < 3200; i++)         //这里估计了一下大致范围{for (j = 0; j < 5; j++)               //含义是对a进行题述处理,中间过程及结果必须是整数,以此为标准来判断{k = 0;a = 0.8*(a - 1);if ((a -(int)a)!=0 )     //判断整数break;k = 1;}if (k==1)break;a=3+i;}a = 2 + i;                        //注意,如果直接输出,结果是第五只猴子分后剩余的数量,同时,i已经多了1printf("桃子数量为%.01lf", a);   //double 一般对应lfreturn 0;
}

当然,虽然个人认为这种较好理解,但总感觉结构比较拖沓。只是一种方向初步的想法,仅仅参考,并不是较为泛用的方法

2. 4 的倍数

#include <stdio.h>
#include <stdlib.h>
int main()
{int  i=0,x, t;for(x=4; i < 5;x=x+4){        t=x;       //要注意此处容易漏掉,必须有交换,否则x=x+4中的x是进行迭代过后的x!!for (i = 0; i < 5; i++){if (t % 4 != 0)break;t = (t / 4) * 5 + 1; }}printf("%d", t);return 0;
}

最根本的依据确实很像:都是依据每次分桃后必为4的倍数,但处理过程有所不同。

想借此拓展一些附加功能,比如输出每次的执行结果,整理成表,探究不同形式的循环设置,再看看书中对于循环的讲解,拓宽应用的思路

3.看知乎还有人直接给了通项公式

还不会latex,直接打出来是y=n^n-n+1,n是猴子个数

猴子分桃问题的几种解法相关推荐

  1. java海滩上有一,Java猴子分桃问题--三种算法

    海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子平均分为五分,多了一个,这只猴子把多的一个扔入海中,拿走了一份,第二只猴子把剩下的桃子又平均分成 五分,又多了一个,他同样把多的一个扔入海中,拿走了 ...

  2. java猴子分桃问题_通俗易懂、简单粗暴得解决猴子分桃问题

    起因 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子分为五份,多了一个,这只猴子把多的一个仍入海中,拿走了一份.第二只猴子把剩下的桃子平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一 ...

  3. java猴子分桃_算法——猴子分桃

    想做些有关"算法"的练习题,在网上无意间看到了一道很经典的算法题--猴子分桃,于是百度了一下,才发现这道题的相关文档很多很多,但最多的也就是使用C++或者Java来解决这道题,而自 ...

  4. python猴子分桃_猴子分桃 - Ryan in C++ - 博客园

    猴子分桃的故事大体有两种描述: 描述 1 :五只猴子分桃.半夜,第一只猴子先起来,它把桃分成了个数相等的五堆,多出一只:于是,它吃掉了一个,拿走了一堆.第二只猴子起来一看,只有四堆桃,于是把四堆合在一 ...

  5. 通俗易懂、简单粗暴地解决各类猴子分桃问题

    起因 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子分为五份,多了一个,这只猴子把多的一个仍入海中,拿走了一份.第二只猴子把剩下的桃子平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一 ...

  6. java 5只猴子分桃_通俗易懂、简单粗暴得解决猴子分桃问题

    c编程技巧-117个问题解决方案示例 79.2元 包邮 (需用券) 去购买 > 起因 海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子分为五份,多了一个,这只猴子把多的一个仍入海中,拿走了一 ...

  7. 猴子分桃问题的解决方法

    猴子分桃问题的解决方法 1 问题 1979年,李政道博士给中国科技大学少年班出过一道智趣题:5只猴子分一堆桃子,怎么也分不成5等分,只好先去睡觉,准备第二天分.夜里1只猴子偷偷爬起来,先吃掉一个桃子, ...

  8. 分解因数 ,求美国节日,猴子分桃

    问答题 问答题1:X86体系结构在保护模式下中有三种地址,请问一下那种说法是正确的? A: 虚拟地址先经过分段机制映射到线性地址,然后线性地址通过分页机制映射到物理地址 B: 线性地址先经过分段机制映 ...

  9. c语言分桃分题设计思路,C语言实现的猴子分桃问题算法解决方案

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

最新文章

  1. 【Linux 内核】实时调度类 ① ( 进程分类 | 实时进程、普通进程 | Linux 内核 SCHED_FIFO、SCHED_RR 调度策略 | 实时调度实体 sched_rt_entity )
  2. OpenCASCADE绘制测试线束:图形命令之VIS 查看器命令
  3. 基于python、虹软实现人脸检测,人脸识别
  4. 在 CAP 中使用 AOP ( Castle.DynamicProxy )
  5. python数据库连接池使用
  6. (三)SpringBoot之配置文件详解:Properties和YAML
  7. python类中的 init_Python类中__init__()的作用
  8. 【超链接】多媒体工具网站
  9. 基于JDBC的数据库连接池高效管理策略
  10. 阅读软件怎么添加书源_「看书+听书」两款神器软件,我已深深的为之折服了...
  11. developer.biao.daily.20140731
  12. win7笔记本外接显示器html,笔记本连显示器的步骤_笔记本如何外接显示器-win7之家...
  13. 五年级上册计算机教案闽教版,小学信息技术闽教版五年级上册第7课 认识因特网教案设计...
  14. 分部积分法解决二重积分问题
  15. 为什么有很深的windows基础还是不能动摇linux半步
  16. 【ubuntu】gcc: fatal error: cannot execute ‘cc1plus’: execvp: No such file or directory
  17. SPIN Routing Algorithm
  18. Flash Socket 的基本通讯协议流程例子
  19. chan队列之发送方等待接收方处理结果
  20. C语言 火车票信息管理系统

热门文章

  1. 关于react-router-dom 6.0.1的基础写法 解决Error: A <Route> is only ever to be used as the child of <Routes>
  2. win10进入bios步骤
  3. 长尾关键词排名优化技巧
  4. ACCV 结果出来了,大家来晒一晒吧~
  5. 论文笔记:Deep Object Co-Segmentation(ACCV2018)
  6. JS 获取中国、各省、各市、各区的边界经纬度点集
  7. 找工作经历--生活的味道都在里面
  8. I don't know what to say 事件的 NPM 包中奖名单,有你在用的吗?
  9. K8S(二)安装配置篇
  10. Gambler Bo