五水手分椰子

五水手分椰子问题(递归问题)

五个水手来到一个岛上,采了一堆椰子后,因为疲劳都睡着了。第一个水手醒来,悄悄地将椰子等分成五份,多出一个椰子,便给了旁边的猴子,然后自己藏起一份,再将剩下的椰子重新合在一起,继续睡觉。第三第四个水手采取一样的策略,第五个水手醒来,便把剩下的椰子分成五份,恰好又多出一个,给了猴子。请问水手最初最少摘了多少个椰子。

#include<stdio.h>
#include<math.h>
int main() {
	int i=1;
	float x;
	float k=1.0,y=1.0;
	while(i<5) {
		i++;
		y=(4*y-1)/5;//y是每个水手私藏的椰子数,第一个y是第一个水手藏得椰子数目 
		if(y!=floor(y)) {//椰子数目应该是整数 
			k++;//k一步步增加椰子数目,不符合条件的被k赋予新值继续进行循环判断 ,直到有满足4次循环条件的y结束 
			y=k;
			i=1;//y不符合条件循环应该从头开
		}

	}
	x=k*5+1;//x为最初摘的椰子数目(此时的k为符合条件的第一个水手私藏的椰子数目) 
	printf("%6f",x);
	return 0;
}

五水手分椰子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值