URAL 2098 Lada Priora 卡精度

ProLightsfx 2017-7-29 132 7/29
I - Lada Priora 卡精度

Source

UESTC 2016 Summer Training #15 Div.2

URAL 2098

My Solution

直接算就好了

这个题目的难点是精度损失

1)其中有一个*p%然后求和的地方,这样每次得到一个double对象, 然后求和这样精度的损失比较严重

所以应当想求和, 最后再 /100得到答案

2)此外, 对于if(b >= ans/100)  这样出现浮点数的比较时, 把除的 非负数移到对面去 变成 if(b*100 >= ans)

 

#include 
#include 

using namespace std;
typedef long long LL;
const int maxn = 1e6 + 8;

int main()
{
    #ifdef LOCAL
    freopen("a.txt", "r", stdin);
    //freopen("b.txt", "w", stdout);
    int T = 2;
    while(T--){
    #endif // LOCAL
    LL b, c, d, k, p, ans = 0;
    //double b, c, d, k, p, ans = 0;
    scanf("%I64d%I64d%I64d%I64d%I64d", &b, &c, &d, &k, &p);
    for(int i = 1; i <= k; i++){ ans += (c + i*d)*p; } //WA...... if(b*100 >= ans){
        printf("Insurancen%.12f", b*1.0 - ans/100.0);
    }
    else{
        printf("Cashn%.12f", ans/100.0 - b*1.0);
    }
    #ifdef LOCAL
    printf("n");
    }
    #endif // LOCAL
    return 0;
}

 

 

非特殊说明,本博所有文章均为博主原创,未经许可不得转载。

https://www.prolightsfxjh.com/

Thank you!

                                                                                                                                             ------from ProLightsfx

- THE END -

ProLightsfx

11月15日12:10

最后修改:2024年11月15日
0

非特殊说明,本博所有文章均为博主原创,未经许可不得转载。

共有 0 条评论