猴子分桃
猴子分桃
Description
老猴子辛苦了一輩子,給那群小猴子們留下了一筆巨大的財富——一大堆桃子。老猴子決定把這些桃子分給小猴子。
第一個猴子來了,它把桃子分成五堆,五堆一樣多。但還多出一個。
它把剩下的一個留給老猴子,自己拿走當(dāng)中的一堆。
第一個猴子來了,它把桃子分成五堆。五堆一樣多。但又多出一個。
它把多出的一個留給老猴子,自己拿走當(dāng)中的一堆。
后來的小猴子都如此照辦。最后剩下的桃子所有留給老猴子。
這里有n僅僅小猴子,請你寫個程序計算一下在開始時至少有多少個桃子,以及最后老猴子最少能得到幾個桃子。
Input
輸入包含多組測試數(shù)據(jù)。
每組測試數(shù)據(jù)包含一個整數(shù)n(1≤n≤20)。
輸入以0結(jié)束,該行不做處理。
Output
每組測試數(shù)據(jù)相應(yīng)一行輸出。
包含兩個整數(shù)a,b。
分別代表開始時最小須要的桃子數(shù),和結(jié)束后老猴子最少能得到的桃子數(shù)。
Sample Input
| Original | Transformed |
5 1 0
Sample Output
| Original | Transformed |
3121 1025 1 1
#include<stdio.h> int main() { int n; while (scanf("%d", &n),n) //輸入一個數(shù),假設(shè)n!=0就循環(huán); { int i; long long zong=1; for (i=1; i<=n; i++) //桃子數(shù)為zong-4; zong*=5; long long hou=zong; for (i=1; i<=n; i++) //老猴子得到的桃子數(shù)為hou+n-4; hou=hou/5*4; printf("%lld %lld ", zong-4, hou+n-4); } return 0; }解說:首先令老猴一共同擁有X個桃,第一個猴拿后,還剩 4/5X-4/5;第二個拿后。還剩16/25X-16/25-4/5;多列幾個??傻玫趎個猴拿后還剩4^n/5^nX-(4^n/5^n+···+4/5);整理可得m=(4/5)^n(X+4)-4;由于在每一個4/5過程中都要能整除。所以X最小滿足5^n-4 ;老猴可得桃數(shù)是m+n;
總結(jié)
- 上一篇: python——获取数据类型
- 下一篇: zabbix监控之zabbix-agen