OpenJudge-1.5.18:鸡尾酒疗法

文章讲述了如何通过编程(Java和C++)实现对鸡尾酒疗法和其他改进疗法有效率的比较,通过输入病例数和有效病例数,判断新疗法是否优于、劣于或等同于鸡尾酒疗法。
摘要由CSDN通过智能技术生成

一、题目链接

http://noi.openjudge.cn/ch0105/18/

二、解题思路

◎ 初始时输入总病例数和有效病例数,计算出鸡尾酒疗法的有效率;
◎ 以步长1为基准,循环输入其它改进疗法的总病例数和有效病例数:
   → 计算出当前改进疗法的有效率;
   → 如果当前改进疗法优于鸡尾酒疗法,则输出better;
     否则如果当前改进疗法劣于鸡尾酒疗法,则输出worse;
     否则,说明当前改进疗法等效于鸡尾酒疗法,输出same。

三、实施步骤

◎ 首先,定义并输入三个int类型的整数n、t、e,分别代表治疗方法的数量、每组治疗方法的总病例数、每组治疗方法的有效病例数;
◎ 其次,定义两个double类型的浮点数x、y,分别代表鸡尾酒疗法的有效率、其它改进疗法的有效率,初始时x=1.0*e/t;
◎ 然后,通过整数i标记治疗方法的编号,i从2开始,到n为止,步长为1,循环处理如下:
   → 输入当前改进疗法的总病例数t和有效病例数e;
   → 令y=1.0*e/t;
   → 如果y-x>0.05:
   	 *** 输出better和回车;
	 否则如果x-y>0.05:
	 *** 输出worse和回车;
	 否则:
	 *** 输出same和回车;
  上述循环结束后,n-1组改进疗法与鸡尾酒疗法的对比也即结束。

四、Java程序

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt(); // 治疗方法的数量
        int t = input.nextInt(); // 每组治疗方法的总病例数
        int e = input.nextInt(); // 每组治疗方法的有效病例数
        double x = 1.0 * e / t; // 鸡尾酒疗法的有效率
        double y; // 其它改进疗法的有效率
        /* 整数i标记治疗方法的编号,i从2开始,到n为止,步长为1 */
        for (int i = 2; i <= n; i++) {
            t = input.nextInt(); // 当前改进疗法的总病例数
            e = input.nextInt(); // 当前改进疗法的有效病例数
            y = 1.0 * e / t; // 当前改进疗法的有效率
            if (y - x > 0.05) { // 如果当前改进疗法优于鸡尾酒疗法
                System.out.print("better\n");
            }
            else if (x - y > 0.05) { // 否则如果当前改进疗法劣于鸡尾酒疗法
                System.out.print("worse\n");
            }
            else { // 否则,当前改进疗法等效于鸡尾酒疗法
                System.out.print("same\n");
            }
        }
    }
}

五、C++程序

#include <iostream>
using namespace std;

int main()
{
    int n; // 治疗方法的数量
    int t; // 每组治疗方法的总病例数
    int e; // 每组治疗方法的有效病例数
    cin >> n;
    cin >> t;
    cin >> e;
    double x = 1.0 * e / t; // 鸡尾酒疗法的有效率
    double y; // 其它改进疗法的有效率
    /* 整数i标记治疗方法的编号,i从2开始,到n为止,步长为1 */
    for (int i = 2; i <= n; i++)
    {
        cin >> t; // 当前改进疗法的总病例数
        cin >> e; // 当前改进疗法的有效病例数
        y = 1.0 * e / t; // 当前改进疗法的有效率
        if (y - x > 0.05) // 如果当前改进疗法优于鸡尾酒疗法
        {
            cout << "better" << endl;
        }
        else if (x - y > 0.05) // 否则如果当前改进疗法劣于鸡尾酒疗法
        {
            cout << "worse" << endl;
        }
        else // 否则,当前改进疗法等效于鸡尾酒疗法
        {
            cout << "same" << endl;
        }
    }
    return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
2018/07/20 周五 12:53 354 01求平均年龄.cpp 2018/07/20 周五 12:53 327 02财务管理.cpp 2018/07/20 周五 12:53 357 03均值.cpp 2018/07/20 周五 12:53 375 04求整数的和与平均值.cpp 2018/07/20 周五 12:54 375 05最高的分数.cpp 2018/07/20 周五 12:54 371 06整数序列的元素最大跨度值.cpp 2018/07/20 周五 12:55 430 07奥运奖牌计数.cpp 2018/07/20 周五 12:55 281 08多边形内角和.cpp 2018/07/20 周五 12:55 237 09奇数求和.cpp 2018/07/20 周五 12:56 239 10满足条件的数累加.cpp 2018/07/20 周五 12:56 403 11整数的个数.cpp 2018/07/20 周五 12:56 257 12与指定数字相同的数个数.cpp 2018/07/20 周五 12:56 217 13乘方计算.cpp 2018/07/20 周五 12:57 324 14人口增长问题.cpp 2018/07/20 周五 12:57 307 15银行利息.cpp 2018/07/20 周五 12:57 433 16买房子.cpp 2018/07/20 周五 12:57 260 17斐波那契数列.cpp 2018/07/20 周五 12:58 461 18鸡尾酒疗法.cpp 2018/07/20 周五 12:58 392 19救援.cpp 2018/07/20 周五 12:58 280 20球弹跳高度的计算.cpp 2018/07/20 周五 12:58 450 21角谷猜想.cpp 2018/07/20 周五 12:59 520 22津津的储蓄计划.cpp 2018/07/20 周五 12:59 400 23药房管理.cpp 2018/07/20 周五 12:59 642 24正常血压.cpp 2018/07/20 周五 13:00 453 25求特殊自然数.cpp 2018/07/20 周五 13:00 387 26统计满足条件的4位数个数.cpp 2018/07/20 周五 13:00 244 27级数求和.cpp 2018/07/20 周五 13:00 296 28分离整数的各个数位.cpp 2018/07/20 周五 13:01 443 29数字反转.cpp 2018/07/20 周五 13:01 341 30含k个3的数.cpp 2018/06/10 周日 14:07 545 31开关灯.cpp 2018/07/20 周五 13:01 360 32求分数序列和.cpp 2018/07/20 周五 13:01 324 33计算分数加减表达式的值.cpp 2018/07/20 周五 13:02 220 34求阶乘和.cpp 2018/07/20 周五 13:02 304 35求出e的值.cpp 2018/07/20 周五 13:02 302 36计算多项式的值.cpp 2018/07/20 周五 13:03 378 37雇佣兵.cpp 2018/07/20 周五 13:03 540 38计算多项式导函数.cpp 2018/07/20 周五 13:03 377 39与7无关的数.cpp 2018/07/20 周五 13:03 331 40数1的个数.cpp 2018/07/20 周五 13:04 485 41数字统计.cpp 2018/07/20 周五 13:04 704 42画矩形.cpp 2018/07/20 周五 13:04 341 43质因数分解.cpp 2018/07/20 周五 13:04 531 44第n小的质数.cpp 2018/07/20 周五 13:05 341 45金币.cpp

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江苏科技大学_计算机学院_潘磊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值