骰子
题目描述
投一个 n 面的骰子,问每一个面都至少被甩到过一次的次数期望是多少?
输入描述
第 1 行为一个整数 T,表示测试数据数量。
接下来的 T 行每行包含一个正整数 N。
输出描述
输出共 T 行,每行包含一个整数,表示答案,结果保留俩位小数。
输入
2
1
12
输出
1.00
37.24
思路
AC代码
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cstring>
#include<memory>
using namespace std;
double dp[2000];
int main()
{
int T,i,j,n;
scanf("%d",&T);
while(T--){
scanf("%d",&n); dp[n]=0;
for(i=n-1;i>=0;i--) dp[i]=dp[i+1]+1.0*n/(n-i);
printf("%.2f\n",dp[0]);
}
return 0;
}