1145 so you want to be a 2n-aire.cpp
来自「威士忌的HDU题解.大概有260多题的源码。对于学习非常有好处。」· C++ 代码 · 共 27 行
CPP
27 行
//不懂计算期望的过程
#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 + =
减小字号Ctrl + -
显示快捷键?