刚开始我也不知道怎么做,后来慢慢就推出来了……
对于样例
2 1 0,结果是2/3
2 2 0,结果是4/5
3 2 0,结果是6/7
3 2 1,结果是9/14=6/7*3/4
……
之后就会发现每一项都是d/(d+1);而d又是怎样来的呢?
上面的d分别是2*1;2*2;3*2,3*1……
所以规律就出来,哈哈……
看代码:
1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 #include<iomanip> 5 #include<cmath> 6 using namespace std; 7 int main() 8 { 9 int t,n,p,k,i; 10 double ans; 11 cin>>t; 12 while(t--) 13 { 14 cin>>p>>n>>k; 15 ans=1.0; 16 for(i=n;i>=n-k;i--){ 17 double an=1.0*p*i; 18 ans*=(an/(an+1)); 19 } 20 printf("%.9lf ",ans); 21 } 22 return 0; 23 }