递归解决分鱼问题

A、B、C、D、E这5个人合伙夜间捕鱼,凌晨时都已经疲惫不堪,于是各自在河边的树丛中找地方睡着了。第二天日上三竿时,A第一个醒来,他将鱼平分为5份,把多余的一条扔回河中,然后拿着自己的一份回家去了;B第二个醒来,但不知道A已经拿走了一份鱼,于是他将剩下的鱼平分为5份,扔掉多余的一条,然后只拿走了自己的一份;接着C、D、E依次醒来,也都按同样的办法分鱼。问这5人至少合伙捕到多少条鱼?每个人醒来后所看到的鱼是多少条?

#include<iostream>
using namespace std ;
int main()
{
	int num[5];
	for(int i=16;;i+=5){
		num[0]=i;
		int j;
		for(j=1;j<5;j++){
			num[j]=(num[j-1]-1)/5*4;
			if(num[j]%5!=1) 
			break; 
		}
		if(j<=4) continue;
		break; 
	}
	for(int i=0;i<5;i++)
		cout << num[i] <<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/h2017010687/article/details/82589038