藍橋杯真題——運動員分組

有N個人參加100米短跑比賽。跑道爲8條。程序的任務是按照儘量使每組的人數相差最少的原則分組。

例如:

N=8時,分成1組即可。

N=9時,分成2組:一組5人,一組4人。

N=25時,分4組:7、6、6、6。

請編程計算分組數字。要求從鍵盤輸入一個正整數(1~100之間,不必考慮輸入錯誤的情況),表示參賽的人數。程序輸出每個組的人數。從大到小順序輸出,每個數字一行。

比如,用戶輸入:25

程序輸出:

7

6

6

6

import  java.util.Scanner;

/*  先將總人數除以8,得到分組數,再將總人數除8取餘,如果大於0,分組數就要再加1。

 *  然後用總人數除以分組數得到每組的平均數,再將總人數除以分組數取餘,再將餘數分到每個組。

 */

public class Main 

{

public static void main(String[] args)

{

Scanner sc=new Scanner(System.in);

int peopleNum=sc.nextInt();

int d=8;

int groupNum=peopleNum/8;

if(peopleNum%d>0)

{

groupNum++;

}

int avaNum=peopleNum/groupNum;  //每個組平均的人數

int remainNum=peopleNum%groupNum;

for(int i=0;i<groupNum;i++)

{

if(i<remainNum)

{ System.out.println(avaNum+1);}

else

{

System.out.println(avaNum);

}

}

 

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章