1. 程式人生 > >【藍橋杯】運動員分組

【藍橋杯】運動員分組

運動員分組:     有N個人參加100米短跑比賽。跑道為8條,因此每組人數最多為8。     程式的任務是按照儘量使每組的人數相差最少的原則分組。例如:     N=8時,分成1組即可。     N=9時,分成2組:一組5人,一組4人。     N=25時,分4組:7、6、6、6。     請程式設計計算分組數字。     要求從鍵盤輸入一個正整數(1~100之間,不必考慮輸入錯誤的情況),表示參賽的人數。     程式輸出每個組的人數。從大到小順序輸出,每個數字一行。     比如,使用者輸入: 25     程式輸出: 7 6 6 6  

#include <iostream>
using namespace std;

int main() {
	int n, i, j, t, f = 1;
	cin >> n;
	for(i = 1; ; i++) {
		t = n/i;
		if(t > 8 || (t == 8 && n-t*i > 0)) continue;
		for(j = 0; j < i; j++) {
			if(j >= n-t*i) f = 0;
			cout << t+f << endl;
		}
		return 0;
	}
}