~$ 存档

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

另一种解法:将数组全部置1,累计相加到报数,则将该位置置为0,意为该位出列,如此反复。关键在于:把数组作环状处理,这个手法已经演练很多遍了!

/*------------完整代码@映雪-------------*/

#include <iostream>
using namespace std;
int main()
{
    int count=0,s=0,i,j=-1,n=3,m=3;
    int a[100];
    for(i=0;i<n;i++)/*将数组全部置1*/
    a[i]=1;
    while(count<n)
    {
        j=(j+1)%n;
        s=s+a[j];
        if(s==m)/*累加到报数*/
        {
            a[j]=0;/*位置置0,表示出列*/
            s=0;
            count++;/*出列计数+1*/
            printf("%d ",j+1);
        }
    }
    return 0;
}
posted on 2016-03-14 09:16  LuoTian  阅读(316)  评论(0)    收藏  举报