约瑟夫环顺序输出方法及最终值计算

过程输出

#include int main() { int n, i, m, p; scanf("%d%d", &n, &m); i = 1; while (i <= n) { p = i * m; while (p > n) p = p - n + (p - n - 1) / (m - 1); printf("%d/n", p); i++; } return 0; }

 

终值计算

#include int main(void) { int n,m,i,s,k; //freopen("E://input.txt","r",stdin); while (~scanf("%d%d%d",&n,&m,&k)&&(n+m+k)) { //n人数,m间隔数,k起始点 s=0; for (i=2; i<=n-1; i++) s=(s+m)%i; printf ("%d/n", (s+k)%n+1); } return 0 ; }  

你可能感兴趣的:(约瑟夫环顺序输出方法及最终值计算)