海盗比酒量(四重循环遍历)(有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶)
题目描述
有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复… 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。
等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“…昨天,我正好喝了一瓶…奉劝大家,开船不喝酒,喝酒别开船…”
请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。
如果有多个可能的答案,请列出所有答案,每个答案占一行。
格式是:人数,人数,…(勿加空格)
例如,有一种可能是:20,5,4,2,0
请给出包括以上答案(20,5,4,2,0)在内的所有可能的答案,每个答案占一行,输出顺序按照第1个数从小到大的顺序排列。
输入
没有输入。
输出
若干行数列,每一行5个整数,两两之间用逗号分隔。
上一行的第1个数应该小于下一行的第1个数。
注意:每一行最后一个数应该是0,且输出中只应该有整数、逗号、换行。不要在任何地方加空格。
思路
简单分析,本来想用递归,发现不用那么拐弯抹角,直接四重循环遍历即可。
题目意思:每次必须都有喝醉的人,剩下的没喝醉的人平分一瓶酒,这样经过四轮,船长分得的酒加起来等于1瓶。
用四重循环来模拟四次的分酒。
值得关注的地方是,本题应该用高精度变量来模拟,避免出现差错与遗漏,并且可以将四个分数的加法,应用乘法变换一下,避免比较小数的困扰。
代码呈上;
#include <stdio.h>int main ()
{double a,b,c,d;double fen1,fen2,fen3,fen4; for(a=20;a>1;a--) {for(b=a-1;b>1;b--){fen2=a/b;for(c=b-1;c>1;c--){fen3=a/c;for(d=c-1;d>1;d--){fen4=a/d; if(1+fen2+fen3+fen4==a){printf("%.0f,%.0f,%.0f,%.0f\n",a,b,c,d);}} }}}return 0;
}
运行示例
不要忘记最后的答案每行都需要加一个0哦!
海盗比酒量(四重循环遍历)(有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶)相关推荐
- 有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下, 有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无
有一群海盗(不多于20人),在船上比拼酒量.过程如下:打开一瓶酒,所有在场的人平分喝下, 有几个人倒下了.再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几, 海 ...
- 有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒, 所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的, 再次重复...... 直到开了第4瓶酒,坐着的
#include <stdio.h> int main() {int i,j,k,l,m;//i为总人数for(i=20;i>0;i--){//j为第一次剩余的人,第一次至少倒下一人 ...
- 有一群海盗(不多于20人),在船上比拼酒量。
/*有一群海盗(不多于20人),在船上比拼酒量.过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了.再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海 ...
- jquery each循环遍历完再执行的方法
jquery each循环遍历完再执行的方法 因为each是异步的 所以要加计数器. var eachcount=0; $(".emptytip").each(function() ...
- 现在有N元钱,两块钱一瓶,或者直接给你N瓶酒,两个空瓶换一瓶酒,四个瓶盖换一瓶酒,问你最后可以喝多少瓶?如果能借酒呢?
问题描述:现在有N元钱,两块钱一瓶,或者直接给你N瓶酒,两个空瓶换一瓶酒,四个瓶盖换一瓶酒,问你最后可以喝多少瓶?如果能借酒呢? 解决思路1: N元钱,其实就是N/2瓶酒.所以我们在程序中直接使用N瓶 ...
- python列表用法详解(查找、添加、删除、修改、复制、循环遍历、列表嵌套)
1. 列表的格式 [数据1, 数据2, 数据3, 数据4......] 列表可以⼀次性存储多个数据,且可以为不同数据类型. 2. 列表的常⽤操作 列表的作⽤是⼀次性存储 ...
- 使用for循环遍历文件
使用 Python 访问文件,首先得先打开文件,在 Python 下打开文件可以使用 open 内置函数 open r--以只读方式打开 w--以写的方式打开 a--以追加模式打开 r+--以读写模式 ...
- C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例
C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判 ...
- mysql 游标循环_mysql for循环遍历 游标用处
以前一直不知道游标的作用,之前的结果集遍历 博主一直用的是记录查询出来的记录总数并一条条用LIMIT 1 OFFSET index 进行查找,并进行处理的. 现在终于会使用游标了,献上一个小例子供大家 ...
最新文章
- 花40分钟写一个-CBIR引擎-代码公开
- 阿里Java架构师精通资料:性能优化+亿级并发架构汇总+架构选型
- java7 uri,细数Java8中那些让人纵享丝滑的文件操作
- 斗地主AI算法——第九章の被动出牌(3)
- POJ 3678 Katu Puzzle
- 基于php校园失物招领,校园失物招领系统设计
- 2021年营销数智化趋势洞察报告:深链经营孕育品牌发展新商机.pdf(附下载链接)...
- -Xlint:deprecation
- 高性能的 socket 通讯服务器(完成端口模型--IOCP)
- 王者荣耀s18赛季服务器什么时候维护好,王者荣耀S18赛季开始时间是什么时候?王者荣耀S18赛季开始时间一览-超能街机...
- asp.net控件的Hyperlink控件
- 结晶器或者连铸--流场-温度场-凝固--夹杂物计算说明
- 服务器装系统认不得硬盘,装系统的时候认不到硬盘的解决方法
- 音乐转换成16进制写进单片机的方法(音符频率和音符的播放长度时间计算)
- linux给文件夹腹权限,文件的权限_腹有诗书气自华的技术博客_51CTO博客
- 树莓派+PHP+Mairadb数据库读取DHT11
- PHP下处理HTTP--json--xml信息
- 零基础入门学习python笔记-day1:程序开发谋定而后动
- ubuntu卡在无限循环登录界面,进不去桌面的问题#不重装是我们最后的倔强!#
- Excel全自动项目管理甘特图