庞果网练习题——魔法
题目详情
你拥有3种魔法,可以用第一种魔法把 a 克的沙子变成 b 克金属,可以用第二种魔法把 c 克金属变成 d 克金子,可以用第三种魔法把 e 克金子变成 f 克沙子。问你能否用初始有限量的沙子、金属、金子得到无限多的金子?
输入格式:
多组数据,每组只有一行包含输入6个整数 a,b,c,d,e,f
(0<=a,b,c,d,e,f<=1000)
输出格式:
每组输出一行,YES和NO表示能否得到无限多的金子。
答题说明
输入样例
100 200 250 150 200 250
100 50 50 200 200 100
1 1 0 1 1 1
100 1 100 1 0 1
输出样例:
YES
NO
YES
YES
以下是java代码
======================================================
import java.util.Scanner;
class Test
{
public static boolean getResult(double []arg){
double value = arg[1]*arg[3]*arg[5]/(arg[0]*arg[2]*arg[4]);
if(value>1){
return true;
}
return false;
}
public static void main(String args[]){
Scanner input = new Scanner(System.in);
double arg[]=new double[6];
for(int i=0;i<6;i++){
while(!input.hasNextInt()){
System.out.println("你输入的不是整数,请重新输入");
input.next();
}
arg[i]=input.nextInt();
}
if(arg[3]!=0){//如果变金为0则必然false
if(arg[2]==0){//如果可无中生有变金则必然true
System.out.println("YES");
}
//以下变金两参数均不为0
//如果变金属为0则不能无限提供金属则必然false
if(arg[1]!=0){
if(arg[0]==0){//如果可无中生有变金属则必然true
System.out.println("YES");
}
//以下变金、变金属两参数均不为0
//如果变沙为0则不能无限提供沙则必然false
if(arg[5]!=0){
if(arg[4]==0){//如果可无中生有变沙则必然true
System.out.println("YES");
}
//以下所有参数均不为0;则智能判断
System.out.println(getResult(arg)?"YES":"NO");
}else{
System.out.println("NO");
}
}else{
System.out.println("NO");
}
}else{
System.out.println("NO");
}
}
}