题目:
五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了个数相等的五堆,多出一只;于是,它吃掉了一个,拿走了一堆。第二只猴子起来一看,只有四堆桃,于是把四堆合在一起,分成相等的五堆,又多出一个;然后,它也吃掉了一个,拿走了一堆。剩下的三只猴子也都是这样分的。问:这堆桃至少有多少个?
思路:递归+暴力
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
using namespace std;
bool enter(int a,int cishu)
{
bool sign;
if(cishu!=5)
{
if(a%5==1)
{
a=(a-1)/5*4;
sign=enter(a,cishu+1);
}
else return false;
}
return sign;
}
int main()
{
for(int a=1;;a++)
{
if(enter(a,0))
{
cout<<a<<" "<<((((((double)a-1)/5*4-1)/5*4-1)/5*4-1)/5*4-1)/5*4;
break;
}
}
return 0;
}