hdu1276(士兵隊列訓練問題) java集合水過

來源:互聯網
上載者:User

標籤:hdu1276

點擊開啟連結

有人說這題屬於棧或者隊列,個人覺得說集合應該比較準確點。

Problem Description某部隊進行新兵隊列訓練,將新兵從一開始按順序依次編號,並排成一行橫隊,訓練的規則如下:從頭開始一至二報數,凡報到二的出列,剩下的向小序號方向靠攏,再從頭開始進行一至三報數,凡報到三的出列,剩下的向小序號方向靠攏,繼續從頭開始進行一至二報數。。。,以後從頭開始輪流進行一至二報數、一至三報數直到剩下的人數不超過三人為止。
 
Input本題有多個測試資料群組,第一行為組數N,接著為N行新兵人數,新兵人數不超過5000。
 
Output共有N行,分別對應輸入的新兵人數,每行輸出剩下的新兵最初的編號,編號之間有一個空格。
 
Sample Input
22040
 
Sample Output
1 7 191 19 37

注意:

這裡要注意題目說的報數一二,是指所有人中按順序報完為後,再進行報一二三。如有:

第一次報數一二:人員:1 2 3 4 5 6 7 8 9 10

報數:1 2 1 2 1 2 1 2 1 2 

第二次報數一二三:人員:1 3 5 7 9

報數: 1 2 3 1 2

如此迴圈上面兩步,知道人員人數不超過三為止。

還有一個細節就是在輸出是,控制一下格式問題,最後一個後面不能有空格

代碼:
import java.util.Iterator;import java.util.LinkedList;import java.util.Scanner;public class P1276 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();int num;LinkedList<Integer> list;while(n-->0){num=sc.nextInt();list=new LinkedList<Integer>();for(int i=0;i<num;i++){//向集合中新增人員list.add(i+1);}//Iterator<Integer> it=queue.iterator();//while(it.hasNext()){//System.out.print(it.next()+" ");//}boolean flag=true;while(list.size()>3){//System.out.println(list.size());if(flag){//控制一二和一二三模式之間互相進行for(int i=1;i<list.size();i+=1){//System.out.print(list.get(i)+" ");list.remove(i);//除去喊到二的人flag=false;}//System.out.println();}else{for(int i=2;i<list.size();i+=2){//System.out.print(list.get(i)+" ");list.remove(i);//除去喊到三的人flag=true;}//System.out.println();}}int remainNum=list.size();//必須提前把結果人數記錄下來Iterator<Integer> it=list.iterator();int count=0;//用來控制最後一個空格問題while(it.hasNext()){count++;if(count==remainNum){//這裡不能用list.size(),因為在輸出結果是,相應的元素已經出去了,所有size改變了System.out.println(it.next());}else{System.out.print(it.next()+" ");}}}}}




著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

hdu1276(士兵隊列訓練問題) java集合水過

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.