Description
Input
共一行,包含一个正整数 x。含义详见题面。
Output
输出一行一个实数,表示答案。
Sample Input
99
Sample Output
1
Data Constraint
Solution
要求砍 10100000001010000000 刀, 其实可以直接看作无穷大.
最后要求输出的答案为 期望暴击数/总刀数, 就是暴击率, 可以发现取倒数一下其实就是 期望多少刀暴击一刀.
那么就只需要计算 期望多少刀暴击一刀, 然后取倒数就是答案.
枚举第i刀的时候暴击,那么前面i-1刀都不暴击。
期望为
暴力算即可.
Code
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define I int
#define ld long double
#define F(i,a,b) for(I i=a;i<=b;i++)
#define N 105
using namespace std;
I n;
ld ans,x,a,b;
ld min(ld x,ld y){return x<y?x:y;}
I main(){
freopen("lol.in","r",stdin);
freopen("lol.out","w",stdout);
scanf("%d",&n);
x=(ld)n/100;
b=1;
F(i,1,ceil(1/x)){
a=b*(1-(ld)x*i);
ans+=i*min(1.0,i*x)*b;
b=a;
}
ans=1/ans;
printf("%.04Lf\n",ans);
return 0;
}