果园里有堆苹果,N(1<N<9)只熊来分。第一只熊把这堆苹果平均分为N份,多了一个,它把多的一个扔了,拿走了一份。第二只熊把剩下的苹果又平均分成N份,又多了一个,它同样把多的一个扔了,拿走了一份,第三、第四直到第N只熊都是这么做的,问果园里原来最少有多少个苹果?
输入
输入1个整数,表示熊的个数。它的值大于1并且小于9。
| 样例输入
5
|
输出
为1个数字,表示果园里原来有的苹果个数。
| 样例输出
3121 |
相对简单没什么好说的。代码如下
#include <iostream>
using namespace std;
int main(int argc, char * argv[])
{
int n, i, baseNum, cnt, apples;
cin >> n;
baseNum = 1;
bool loop = true;
while(loop)
{
cnt = n * baseNum + 1;
apples = cnt;
for (i = 0; i < n-1; i++)
{
cnt -= (cnt - 1)/n + 1;
if (cnt <= 0 || (cnt - 1)%n != 0)
{
baseNum++;
break;
}
}
if(i == n-1)
{
loop = false;
cout << apples;
}
}
return 0;
}