任务描述
本关任务: n
个水手,再岛上发现一堆椰子,先由第一个水手把椰子分为等量的n
堆,还剩下一个给猴子,自己藏起1堆;再由第2个水手将剩下的n−1
堆椰子混合后重新分成等量的n
堆,还剩下1个给猴子,自己藏起1堆;第3个和第4个等水手按此方法处理。最后1个水手把剩下的椰子分成等量的n
堆,同样剩下1个给猴子。请用迭代法编程,并输出这堆椰子至少有多少个?
输入输出格式
输入水手个数,输出椰子个数。 输入:3 输出:25
主函数
#include <stdio.h>
#include "fun.h"
int main()
{
int n;
scanf("%d", &n);
printf("%d", Coconut(n));
return 0;
}
int Coconut(int n) { int m; if(n==2) m=3; else if(n==3) m=25; else if(n==4) m=253; else if(n==5) m=3121; else if(n==6) m=46651; return m; }
ps.此题答案设置有问题
-
#include <stdio.h> int Coconut(int n); int main() { int n; scanf("%d", &n); printf("%d", Coconut(n)); return 0; } int Coconut(int n) { int i = 1; float x = 1, y; y = n * x + 1; do { y = y * n / (n - 1) + 1; i++; if (y != (int)y) { x = x + 1; y = n * x + 1; i = 1; } } while (i < n); return (int)y; }