一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到M,凡报到M的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?
3条回答 默认 最新
Watch the clown 2023-06-10 10:49关注约瑟夫环一般就是解决这种问题的最好算法
#include <stdio.h> #include <stdlib.h> int yue(int n,int m) { int y; if(n==1){ y = 0; }else if(n>1){ y = (yue(n-1,m)+m)%n; } return y; } int main() { int n,y; scanf("%d",&n); int m = 3; y = yue(n,m)+1; printf("%d",y); return 0; }本回答被专家选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 2无用