任务描述
本关任务: 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; }
该博客讨论了一个关于n个水手和一堆椰子的数学问题。每个水手依次将剩余的椰子分成等量的n堆,每次都剩下一个给猴子。通过迭代法编程实现找到满足条件的最小椰子数量。对于输入的水手人数n,程序会输出对应的椰子至少需要多少个。示例中给出了当n为2到6时的具体解,并提供了一个迭代求解的通用算法。
第1关:习题8 椰子数&spm=1001.2101.3001.5002&articleId=128508008&d=1&t=3&u=8a58fb870410478496e1f30c78aa6be1)
2154

被折叠的 条评论
为什么被折叠?



