A - 士兵隊列訓練問題

來源:互聯網
上載者:User

標籤:

Description

某部隊進行新兵隊列訓練,將新兵從一開始按順序依次編號,並排成一行橫隊,訓練的規則如下:從頭開始一至二報數,凡報到二的出列,剩下的向小序號方向靠攏,再從頭開始進行一至三報數,凡報到三的出列,剩下的向小序號方向靠攏,繼續從頭開始進行一至二報數。。。,以後從頭開始輪流進行一至二報數、一至三報數直到剩下的人數不超過三人為止。  

Input

本題有多個測試資料群組,第一行為組數N,接著為N行新兵人數,新兵人數不超過5000。  

Output

共有N行,分別對應輸入的新兵人數,每行輸出剩下的新兵最初的編號,編號之間有一個空格。  

Sample Input

22040 

Sample Output

1 7 19 1 19 37 本題思路:將報數後要出隊的元素的值變為0,迴圈至不為0的小於等於3為止,在將不為0的元素輸出。代碼如下:
#include<iostream>using namespace std;int main(){    int n,h,i,j,k;    int a[5002]={0};    cin>>n;    while(n--)    {        cin>>h;            k=h;        for(i=1;i<=h;i++)            a[i]=i;        while(k>3)        {            j=0;            for(i=1;i<=h;i++)            {                if(a[i]==0) continue;                else j++;                if(j==2)                {                    a[i]=0;                    j=0;                }            }                k-=k/2;                if(k<=3) break;                j=0;                for(i=1;i<=h;i++)                {                    if(a[i]==0) continue;                    else j++;                    if(j==3)                    {                        a[i]=0;                        j=0;                    }                }                k-=k/3;            }            for(i=1;i<=h;i++)            {                if(a[i]==0) continue;                else                {                    k--;                    if(k>0)                        printf("%d ",a[i]);                    else                        printf("%d\n",a[i]);                }            }        }        return 0;    }    

 

A - 士兵隊列訓練問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.