您的位置:首页 > 大数据 > 人工智能

UVA 10900 So you want to be a 2n-aire?

2013-10-22 23:23 417 查看
题意:参考这里点击打开链接

#include<stdio.h>
#include<string.h>
#include<math.h>
#define MAXD 35
int N;
double T, q[MAXD];
void solve()
{
    int i, j, k;
    double eq, f = 1, quit;
    f = q
;
    for(i = N - 1; i >= 0; i --)
    {
        quit = q[i];
        eq = quit / f;
        if(eq <= T)
            f = (T + 1) / 2 * f;
        else
            f = (eq - T) / (1 - T) * quit + (1 - eq) / (1 - T) * (eq + 1) / 2 * f;
    }
    printf("%.3lf\n", f);
}
int main()
{
    q[0] = 1;
    for(int i = 1; i <= 30; i ++)
        q[i] = 2 * q[i - 1];
    for(;;)
    {
        scanf("%d%lf", &N, &T);
        if(!N)
            break;
        if(fabs(1 - T) < 1e-9)
            printf("%.3lf\n", q
);
        else
            solve();
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: