场次: 牛客小白月赛86

编号:1.水盐平衡

 题意:给定 浓度不同的 两份盐水溶液,第一份:a单位盐,b单位水,
                                     第二份:c单位盐,d单位水,
									 
									 
现需使 第一份 第一份盐水溶液的浓度变得和第二份盐水溶液的浓度一样,
水多加盐,盐多加水, 问 给溶液1 加水 还是 加盐?

原问题: 给定a,b,c,d ,求 给溶液1 加水 或 加盐,使 溶液1 的浓度 等于 溶液2 。 判断,对溶液1 做 对应操作:加水 还是 加盐 ? 子问题: a盐, b水; c盐, d水;

本质:  使 a/b = c/d ,  
   

分析: 条件1:a/b>c/d? b+: a+ ;
条件2:a/b = c/d

import java.util.Scanner;

public class Main { //main函数入口

public static void main(String[] args) {
    //创建了一个Scanner对象,它用于从标准输入(键盘)读取用户输入的数据。
    //System.in表示标准输入流,通过Scanner类可以方便地读取各种类型的输入数据
    Scanner in = new Scanner(System.in); //获取键盘输入数据、
    //从输入中读取一个整数并将其存储在变量T中。
    int T = in.nextInt(); // 获取案例组数
    while (T-- > 0) {  //泛型?
   // 这是一个循环结构,while关键字后面的条件T-- > 0表示只要变量T大于0,就会一直执行循环体中的代码。
  //      T--表示先使用T的值,然后将T的值减1。    
        int a = in.nextInt();   //nextInt()方法用于读取下一个整数。
        int b = in.nextInt();
        int c = in.nextInt();
        int d = in.nextInt();
        
        System.out.println(addSaltOrWater(a, b, c, d));
    }
}
//调用addSaltOrWater方法,并将从输入中读取的四个整数作为参数传递给它。
//然后,将addSaltOrWater方法返回的结果打印到控制台。
public static char addSaltOrWater(int a, int b, int c, int d) {
    double contain1 = (double) a / b; // 第一份盐水溶液的浓度
    double  contain2 = (double) c / d; // 第二份盐水溶液的浓度

//计算了两份盐水溶液的浓度。 //通过将其中一个操作数转换为double类型,可以确保在进行除法运算时得到一个准确的浮点数结果。
if (contain1 >contain2 ) { return 'S'; // 加水 , 实际上是让溶液1 与 溶液2 作比较, 浓度大说明盐多,就加水; } else { return 'Y'; // 加盐 ,实际上是让溶液1 与 溶液2 作比较, 浓度小说明水多,就加盐; } } }