📄 1145 so you want to be a 2n-aire.cpp
字号:
//不懂计算期望的过程
#include <math.h>
#include <stdio.h>
int n,k;
double p,w,t;
int main()
{
while ( scanf("%d%lf",&n,&p)==2 )
{
if (!n) break;
w = 1<<n; // 2^n
for(k=n-1;k>=0;k--)
{
t = (1<<k)/w;
if (p >= t)
w = (p+1)/2*w;
else
w = (1<<k) * (t-p)/(1-p) + w * (t+1)/2 * (1-t)/(1-p);
}
printf("%0.3lf\n",w);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -