3042 迷之期望 SDUToj

迷之期望

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

FF 一直有一个梦想,就是把 CF 打到紫名。可是现在有一个问题, FF 并不是每场都能涨分。我们现在将这个问题简化,假设现在 FF 的分数为 x ,每一场增加 a 分的概率为 p ,增加 0 分的概率为 1-p ,现在请你计算一下 FF 突破 1700 的期望场数是多少。

输入

  每组输入 x(0 <= x <= 1700) a (0 <= a <= 100) p (0 <= p <= 1),x,a为整数,p为浮点数

输出

  每组输出输出一行。若能突破 1700 ,则输出一个浮点数代表答案,保留小数点后三位。

否则输出  Why are you so ben?

示例输入

1700 1 1
1699 100 1
0 0 0

示例输出

0.000
1.000
Why are you so ben?



#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;

int a[1000000];
int main()
{
    int i,x,a,b;
    double p,qw;
    while(cin>>x>>a>>p)
    {
        if(x>=1700)
        {
            printf("0.000\n");
            continue;
        }
        if(x>=0&&x<1700)
        {
            if(a==0||p==0)
                puts("Why are you so ben?");
            else//主要是在分数的差值是多少。
            {
                int b=1700-x;
                if(b%a==0)//  B/A表示所需要的场数
                {
                    qw=(b/a)/p;
                }
                else
                {
                    qw=( (b/a)+1)/p;//但是这里为什么要/而不是*呢?
                }
                printf("%.3lf\n",qw);
            }
        }

    }
    return 0;
}


你可能感兴趣的:(3042 迷之期望 SDUToj)