一、题目
给定一个数字,T,接着又T行,每行3个数字,求每行3个数字能否通过加减乘除最终结果计算为0,不允许使用括号;如果可以计算为0,则输出YES,否则输出为NO。
1.1、样例
3
123
345
789
1.2、输出结果:
YES
NO
NO
二、代码
2.1、定义一个实体类
package com;
import java.util.List;
public class Demo {
/**
* 多少行数据;
*/
private int i;
/**
* 每行数据集合;
*/
private List<List<Double>> list;
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public List<List<Double>> getList() {
return list;
}
public void setList(List<List<Double>> list) {
this.list = list;
}
@Override
public String toString() {
return "Demo [i=" + i + ", list=" + list + ", getI()=" + getI() + ", getList()=" + getList() + ", getClass()="
+ getClass() + ", hashCode()=" + hashCode() + ", toString()=" + super.toString() + "]";
}
}
2.2、计算主方法
package com;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Test {
public static void main(String arg[]){
Demo demo = new Demo();
demo =dataInitial(demo,3);
if(demo!=null&&demo.getI()>0){
for(int i=0;i<demo.getI();i++){
if(demo.getList()!=null&&demo.getList().size()>0){
List<List<Double>> outList = demo.getList();
List<Double> innerList = outList.get(i);
double d1 = innerList.get(0);
double d2 = innerList.get(1);
double d3 = innerList.get(2);
caculate(d1,d2,d3);
}
}
}
}
public static Demo dataInitial(Demo demo,int in){
demo.setI(in);
List<List<Double>> list = new ArrayList<>();
for(int i =0;i<in;i++){
List<Double> intList = new ArrayList<Double>();
Random r=new Random();
intList.add(-r.nextInt(10)/1.0);
intList.add(r.nextInt(10)/1.0);
intList.add(r.nextInt(10)/1.0);
list.add(intList);
}
demo.setList(list);
return demo;
}
public static void caculate(double d1,double d2,double d3){
if(d1==0||d2==0||d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}else{
if(d1+d2+d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1+d2-d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1+d2*d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1+d2/d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1-d2+d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1-d2-d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1-d2*d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1-d2/d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1*d2+d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1*d2-d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1*d2*d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1*d2/d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1/d2+d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1/d2-d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1/d2*d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}
else if(d1/d2/d3==0){
System.out.println(d1+"---"+d2+"---"+d3+"---"+"YES");
return;
}else {
System.out.println(d1+"---"+d2+"---"+d3+"---"+"NO");
return;
}
}
}
}
代码截图1
代码截图2