7217:猴子吃桃

likztime

2018-01-15 17:13:38

Personal

#7217:猴子吃桃 总时间限制: 3000ms 内存限制: 65536kB 描述 海滩上有一堆桃子,N只猴子来分。第一只猴子把这堆桃子平均分为N份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子接着把剩下的桃子平均分成N份,又多了一个,它同样把多的一个扔入海中,拿走了一份。第三、第四、……,第N只猴子仍是最终剩下的桃子分成N份,扔掉多了的一个,并拿走一份。 编写程序,输入猴子的数量N,输出海滩上最少的桃子数,使得每只猴子都可吃到桃子。 输入 一个整数N。 输出 输出当猴子数量为N时海滩上最少的桃子数。结果保证在int型范围内。 样例输入 2 样例输出 7 ##题目分析: ##详见代码之中!!太简单了额..... 代码: ```cpp #include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { int n; cin >> n; for(int x=1;;x++) //枚举最后一只猴子分到的桃子数 { int t=x; t=t*n+1; //第n只猴子分桃前的桃子数 bool flag = true; //判断前n-1只是否能顺利分到桃子 for(int i=n-1;i>=1;i--) { if(t%(n-1)!= 0) { flag = false; break; } t=t/(n-1)*n+1; //前一只猴子分桃前的总数 = 后一只分桃前的总数 % (n-1/n) + 1 } if(flag) { cout << t << endl; break; } } return 0; } ```