读书人

看看会的写个程序 谢了解决办法

发布时间: 2012-09-14 23:00:49 作者: rapoo

看看会的写个程序 谢了
n个人围成一个圈从第一个人开始按1,2,3...k报数报到k的人出圈
在由下一个人开始继续报数一次
输出出圈的编号

[解决办法]

C/C++ code
//假设有n个人团团围做,从第1个人开始数数,数到第m个人时候,第m个人出列,//然后继续从1开始数数,数到第m个人退出#include <stdio.h>#include <conio.h>int i,k,t;int n,m;static char f[1001];//0该座位未出圈,1该座位已出圈void main() {    while (1) {        printf("Input n m(1000>=n>=m>=1):");        fflush(stdout);        rewind(stdin);        if (2==scanf("%d%d",&n,&m)) {            if (1000>=n && n>=m && m>=1) break;        }    }    t=0;//已出圈总人数    i=1;//座位编号    k=1;//当前要数的数    while (1) {        if (0==f[i]) {            if (m==k) {                t++;                f[i]=1;                printf("%3d ",i);                if (0==t%10) printf("\n");                if (t>=n) break;            }            k++;if (k>m) k=1;        }        i++;if (i>n) i=1;    }    cprintf("Press any key ...");    getch();}
[解决办法]
具体数学里有。。

读书人网 >C++

热点推荐