1228: 趣味程序設計_出售金魚
題目描述
令狐沖將養的一缸金魚分5次出售:第1次賣出全部的一半加1/2條;第2次賣出餘下的三分之一加1/3條;第3次賣出餘下的四分之一加1/4條;第4次賣出餘下的五分之一加1/5條;最後賣出餘下的11條。問原來魚缸中共有多少條魚?答案是59條。
爲了防止大家混AC,題目稍微改一下。
令狐沖將養的一缸金魚分m次出售(m的取值爲2,或3,或4,或5):第1次賣出全部的一半加1/2條;第2次賣出餘下的三分之一加1/3條;第3次賣出餘下的四分之一加1/4條;第4次賣出餘下的五分之一加1/5條;......;第m-1次賣出餘下的m分之一加1/m條,最後賣出餘下的11條。問原來魚缸中共有多少條魚?
若輸入的m是5,則答案仍是59條。
輸入
每行輸入一個m值,m的取值爲2,或3,或4,或5。
輸出
對應輸出原來魚缸中共有多少條魚?,輸出一個數字即可。
樣例輸入
5
4
3
2
4
樣例輸出
59
47
35
23
47
提示
從X=23開始試探,步長取2,前4次中,第i次出售後留下:X=X-(X+1)/(i+1),第4次出售後餘下11條。
#include<cstdio>
#include<iostream>
using namespace std;
int main(){
int m;
while(cin>>m){
double ans=11;
for(int i=m-1;i>=1;i--){
ans=(ans*(i+1)+1)/i;
}
cout<<ans<<endl;
}
return 0;
}