問題描述:
某幼兒園按如下方法依次給a、b、c、d、e五個小孩發蘋果。將全部蘋果的一半再加二分之一個蘋果發給第1個小孩;將剩下蘋果的三分之一再加三分之一個蘋果發給第2個小孩;將剩下蘋果的四分之一再加四分之一個蘋果發給第3個小孩;將剩下蘋果的五分之一再加五分之一個蘋果發給第4個小孩;將剩下的11個蘋果發給第5個小孩。每個小孩得到的蘋果數均為整數。求原來共有多少個蘋果?每個小孩各得到多少個蘋果?
分析:設當前試探的蘋果數為n,則對n推導公式為:
第k個小孩得到全部剩下蘋果的(k+1)分之一再加上(k+1)分之乙個蘋果,即(n+1)/(k+1)個蘋果。這個數應該是整數;發完第k個小孩後,餘下的蘋果數為n-(n+1)/(k+1)應該為11。
**實現:
**執行截圖:#includevoid main()
if(flag == 0 && n!= 11)
flag=1; //得到的蘋果是整數,但是最後剩下的不是11,還要繼續試探
n=x+1;
} printf("蘋果總數:%d\n",x); //蘋果總數
a=(x+1)/2;
b=(x-a+1)/3;
c=(x-a-b+1)/4;
d=(x-a-b-c+1)/5;
e=11;
printf("a=%d\n",a);
printf("b=%d\n",b);
printf("c=%d\n",c);
printf("d=%d\n",d);
printf("e=%d\n",e);
}
程式設計題 分蘋果
n 只奶牛坐在一排,每個奶牛擁有 ai 個蘋果,現在你要在它們之間轉移蘋果,使得最後所有奶牛擁有的蘋果數都相同,每一次,你只能從乙隻奶牛身上拿走恰好兩個蘋果到另乙個奶牛上,問最少需要移動多少次可以平分蘋果,如果方案不存在輸出 1。輸入描述 每個輸入包含乙個測試用例。每個測試用例的第一行包含乙個整數 ...
程式設計題 分蘋果
n 只奶牛坐在一排,每個奶牛擁有 a i 個蘋果,現在你要在它們之間轉移蘋果,使得最後所有奶牛擁有的蘋果數都相同,每一次,你只能從乙隻奶牛身上拿走恰好兩個蘋果到另乙個奶牛上,問最少需要移動多少次可以平分蘋果,如果方案不存在輸出 1。每個輸入包含乙個測試用例。每個測試用例的第一行包含乙個整數 n 1 ...
1000個蘋果分10個裝箱
1000個蘋果放入10個箱子。客戶如果要獲得1 1000個蘋果中的任意個數,都可以整箱搬,而不用拆開箱子。問是否有這樣的裝箱方法?二進位制數組合 110 1001000 可以表示任何0x01 0xff之間的數字,所以按照這樣的思想,110 1001000 10000 100000 1000000 1...