题解 B2065 【鸡尾酒疗法】

· · 题解

基础练手题。

算法概述

很明显,这是一道小模拟,即根据题目意思一步步来做就行。

考察到的数学知识点有:比例的计算。

考察到的计算机知识点有:循环结构、分支结构以及浮点数的处理。

对于第 1 组(鸡尾酒疗法)的治疗有效数 b 和治疗总数 a,算出其治愈率为 x=\frac{b}{a},但是注意ab 读入时为整型,在除法时会默认整除即下取整,因此在写代码时这句话要写为 x = 1.0 * b / a,乘上 1.0 就转成双精度浮点型了。

对于后 n-1 组(新疗法)的治疗有效数 d 和治疗总数 c,算出其治愈率为 y=\frac{d}{c}。同理要写为 y = 1.0 * d / c,以保证小数部分的正确计算。

剩下只需要比较 xy 的差值,然后输出答案字符串,注意大小写和换行。

备注:5\%=0.05

香喷喷的代码 ↓

CODE

#include <stdio.h>
int n, a, b;
int main(void) {
    scanf("%d %d %d", &n, &a, &b);
    int c, d; double x = 1.0 * b / a, y;
    while (n-- != 1) {
        scanf("%d %d", &c, &d);
        y = 1.0 * d / c;
        if(y - x >= 0.05) puts("better");
        else
            if(x - y >= 0.05) puts("worse");
            else puts("same");
    }
    return 0;
}

走过路过 也要赞过 qwq