JAVA 猴子分桃子問題

唯心而動唯刃而行 發表於 2020-10-17

java分桃子問題

海灘上有一堆桃子,五隻猴子來分。 第一隻猴子把這堆桃子平均分為五份,多了一個, 這隻猴子把多的一個扔入海中,拿走了一份。 * 第二隻猴子把剩下的桃子又平均分成五份,又多了一個, 它同樣把多的一個扔入海中,拿走了一份, 第三、第四、第五隻猴子都是這樣做的, * 問海灘上原來最少有多少個桃子?

程式碼實現

public static void main(String[] args) {
		//窮舉法
		for (int i = 0; i < Integer.MAX_VALUE; i++) { // 不知道迴圈次數 定義為int 型別的最大值
			if (((i - 1) % 5 )== 0) {  // 第一次分桃子
				int i1 = ((i - 1) / 5 ) * 4; // 第一次分完桃子後剩下的桃子
				
				if (((i1 - 1) % 5 )== 0) {  // 第二次分桃子
					int i2 = ((i1 - 1) / 5 ) * 4; // 第二次分完桃子後剩下的桃子
					
					if (((i2 - 1) % 5 )== 0) {  // 第三次分桃子
						int i3 = ((i2 - 1) / 5 ) * 4; // 第三次分完桃子後剩下的桃子
						
						if (((i3 - 1) % 5 )== 0) {  // 第四次分桃子
							int i4 = ((i3 - 1) / 5 ) * 4; // 第四次分完桃子後剩下的桃子
							
							if (((i4 - 1) % 5 )== 0) {  // 第五次分桃子
								int i5 = ((i4 - 1) / 5 ) * 4; // 第五分完桃子後剩下的桃子							
							
								System.out.println("最少有"+ i+"個桃子");
								System.out.println("第一次分完桃子後還剩下" + i1 + "個桃子");
								System.out.println("第二次分完桃子後還剩下" + i2 + "個桃子");
								System.out.println("第三次分完桃子後還剩下" + i3 + "個桃子");
								System.out.println("第四次分完桃子後還剩下" + i4 + "個桃子");
								System.out.println("第五次分完桃子後還剩下" + i5 + "個桃子");
								break;  // 找到第一個滿足的資料就推出迴圈
							} 
						} 
					} 
				} 
			} 
		}
		
	}

總結

用的窮舉法,個人能力有限。望海涵