fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4.  
  5. int main() {
  6. int t,n,i,j,m;
  7. double ans;
  8. bool breakk;
  9.  
  10. cin>>t;
  11.  
  12. while(t--) {
  13. breakk=false;
  14. cin>>n;
  15. double dp[1000][1000]={0};
  16. dp[1][1]=1;
  17.  
  18. for(i=1;i<998;i++) {
  19. for(j=0;j<=i;j++) {
  20. if(j<n) {
  21. dp[i+1][j+1]+=dp[i][j]*(double(n-j)/n);
  22. dp[i+1][j]+=dp[i][j]*(double(j)/n);
  23.  
  24. if(dp[i+1][j+1]) {
  25. if((j+1==n) && dp[i+1][j+1]<0.00000001) {
  26. breakk=true;
  27. break;
  28. }
  29. }
  30. }
  31.  
  32. }
  33.  
  34. if(breakk) {
  35. break;
  36. }
  37. }
  38. ans=0;
  39. for(m=n;m<=i+1;m++) {
  40. ans=ans+dp[m][n]*m;
  41.  
  42. }
  43.  
  44. cout<<ans<<endl;
  45. }
  46.  
  47. return 0;
  48. }
Success #stdin #stdout 0s 10432KB
stdin
3
1
2
3
stdout
1
3
5.5