【程序69】 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出 圈子,问最后留下的是原来第几号的那位。
#include <iostream>using namespace std;
void main(){ int *ary; int num;
cout<<"Please enter the num:/n"; cin>>num;
ary = new int[num + 1]; for(int i=1; i<=num; i++) { ary[i] = i ; }
int cnt = 1; int idx = 0; int temp;
while( cnt <= num ) { idx = idx + 3; if(idx >num) { idx = idx - num; }
while( ary[idx] == 0 ) { idx++; if(idx > num) idx = 1; }
cout<< ary[idx] <<" "; ary[idx] = 0; cnt ++;
}
}