水手分椰子
Description
n個水手來到一個島上,采了一堆椰子后,因為疲勞都睡著了。一段時間后,第一個水手醒來,悄悄地將椰子等分成n份,多出一個椰子,便給了旁邊的猴子,然后自己藏起一份,再將剩下的椰子重新合在一起,繼續睡覺。不久,第二名水手醒來,同樣將椰子了等分成n份,恰好也多出一個,也給了猴子。然而自己也藏起一份,再將剩下的椰子重新合在一起。以后每個水手都如此分了一次并都藏起一份,也恰好都把多出的一個給了猴子。第二天,n個水手醒來,發現椰子少了許多,心照不喧,便把剩下的椰子分成n份,恰好又多出一個,給了猴子。請問水手最初最少摘了多少個椰子?
Input
多組測試數據,每組輸入1個整數n(1 < n <= 9)
Output
對于每組測試數據輸出一行,值為最初摘的椰子數
Sample Input
5
Sample Output
15621
HINT
多種可能性的情況下只求最小值
由數學關系可得 n的n+1冪-(n-1)
#include <stdio.h> #include <stdlib.h> #include <math.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) {double n;while(scanf("%lf",&n)!=EOF&&n>1&&n<=9){printf("%.lf\n",pow(n,n+1)-(n-1)); } return 0; }總結