1. 程式人生 > >2016藍橋杯假期任務之《比酒量》

2016藍橋杯假期任務之《比酒量》



    有一群海盜(不多於20人),在船上比拼酒量。過程如下:開啟一瓶酒,所有在場的人平分喝下,有幾個人倒下了。再開啟一瓶酒平分,又有倒下的,再次重複...... 直到開了第4瓶酒,坐著的已經所剩無幾,海盜船長也在其中。當第4瓶酒平分喝下後,大家都倒下了。


    等船長醒來,發現海盜船擱淺了。他在航海日誌中寫到:“......昨天,我正好喝了一瓶.......奉勸大家,開船不喝酒,喝酒別開船......”


    請你根據這些資訊,推斷開始有多少人,每一輪喝下來還剩多少人。


    如果有多個可能的答案,請列出所有答案,每個答案佔一行。


    格式是:人數,人數,...


    例如,有一種可能是:20,5,4,2,0


    答案寫在“解答.txt”中,不要寫在這裡!


程式碼如下:

import java.util.Scanner;
public class Main {
	
	public static void main(String[] args) {
		
//		Scanner input=new Scanner(System.in);
		int person[]=new int [5];
		for (person[1]=1; person[1]<=20; person[1]++){
			for (person[2]=1;person[2]<person[1];person[2]++){
				for (person[3]=1;person[3]<person[2];person[3]++){
					for (person[4]=1;person[4]<person[3];person[4]++)
					{
						if ((1.0)/person[1]+(1.0)/person[2]+(1.0)/person[3]+(1.0)/person[4]==1)
						{
							for (int i=1;i<=4;i++)
							{
								System.out.print(person[i]);
								if (i==4)
								{
									System.out.println(",0");
								}
								else
									System.out.print(",");
							}
							
						}
					}
				}
			}
		}
	
	}

}

執行結果:
12,6,4,2,0
15,10,3,2,0
18,9,3,2,0
20,5,4,2,0