描述

    海滩上有一堆桃子,N只猴子来分。第一只猴子把这堆桃子平均分为N份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子接着把剩下的桃子平均分成N份,又多了一个,它同样把多的一个扔入海中,拿走了一份。第三、第四、……,第N只猴子仍是最终剩下的桃子分成N份,扔掉多了的一个,并拿走一份。
    编写程序,输入猴子的数量N,输出海滩上最少的桃子数,使得每只猴子都可吃到桃子。

输入

一个整数N。

输出

输出当猴子数量为N时海滩上最少的桃子数。结果保证在int型范围内。

样例输入

2

样例输出

7
 1 #include <cstdio>
 2 #include <string>
 3 #include <memory.h>
 4 #include <algorithm>
 5 #include <stdlib.h>
 6 #include <math.h>
 7 #include <iostream>
 8 #include<queue>
 9 #include <vector>
10 #include <bitset>
11 using namespace std;
12 
13 int n;
14 int dp[1000];
15 
16 int main()
17 {
18     scanf("%d", &n);
19     dp[1] = 1;
20     while(1)
21     {
22         int flag = true;
23         for (int i = 2; i <= n ; i++)
24         {
25             dp[i] = (dp[i - 1] * n + 1) / (n - 1);
26             if (dp[i] * (n - 1) != dp[i - 1] * n + 1) {
27                 dp[1]++;
28                 flag = false;
29                 break;
30             }
31         }
32         if (flag)
33             break;
34     }
35     printf("%d\n", dp[n ]*n+1);
36     return 0;
37 }
View Code

相关文章:

  • 2021-12-19
  • 2021-08-30
猜你喜欢
  • 2022-12-23
  • 2021-08-05
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案