您的位置:首页 > 其它

SPOJ FAVDICE

2015-08-20 15:18 471 查看
E - E
Time Limit:391MS Memory Limit:1572864KB 64bit IO Format:%lld
& %llu
Submit Status Practice SPOJ
FAVDICE

Description

BuggyD loves to carry his favorite die around. Perhaps you wonder why it's his favorite? Well, his die is magical and can be transformed into an N-sided unbiased die with the push of a button. Now BuggyD wants to learn more about his die, so he raises a question:

What is the expected number of throws of his die while it has N sides so that each number is rolled at least once?


Input

The first line of the input contains an integer t, the number of test cases. t test cases follow.

Each test case consists of a single line containing a single integer N (1 <= N <= 1000) - the number of sides on BuggyD's die.


Output

For each test case, print one line containing the expected number of times BuggyD needs to throw his N-sided die so that each number appears at least once. The expected number must be accurate to 2 decimal digits.


Example

Input:
2
1
12

Output:
1.00
37.24


概率题。
n/1+n/2+....+n/n;

#include <stdio.h>
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
double sum=0;
for(int i=1;i<=n;i++)
sum+=(double)n/i;
printf("%.2lf\n",sum);
}
return 0;
}


另一种期望DP的做法。

#include <cstdio>
#include <cstring>
using namespace std;
#define N 1005
double dp
;
int main()
{
int T,k,n;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&k,&n);
dp[1]=1.00;
for(int i=2;i<=n;i++)
dp[i]=dp[i-1]+(k-dp[i-1])/k;
printf("%.5f\n",dp
);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: