思路:易知结果为
∑(n-k)*C(n+k,k)*(p^(n+1)*q^k+q^(n+1)*p^k).
注意不能直接算,注意点技巧!!!看代码
代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 #include<iomanip> 5 #include<cmath> 6 using namespace std; 7 int main(){ 8 int n,i,j=0; 9 double p,q,ans1,ans2,m,c,pq,ans; 10 while(scanf("%d%lf",&n,&p)!=EOF){ 11 q=1-p; 12 pq=p*q; 13 ans1=n*p;ans2=n*q;c=1; 14 for(i=1;i<=n;i++){ 15 c*=(n+i)*pq/i; 16 ans1+=c*(n-i); 17 ans2+=c*(n-i); 18 ans1*=p; 19 ans2*=q; 20 } 21 ans=ans1+ans2; 22 printf("Case %d: %.6lf ",++j,ans); 23 } 24 return 0; 25 }