程序十三

    技术2022-06-09  33

    【程序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 ++;

     }

    }


    最新回复(0)