【JAVA】计算题

一、题目

给定一个数字,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
这里写图片描述

三、输出结果

这里写图片描述

猜你喜欢

转载自blog.csdn.net/river_continent/article/details/80863220