这题对Java也太恶心了
查看原帖
这题对Java也太恶心了
1060961
Kxzzy_n楼主2023/12/24 20:16
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        ArrayList<String> list = new ArrayList<>();
        double a = scanner.nextDouble();
        double b = scanner.nextDouble();
        double c = scanner.nextDouble();
        double d = scanner.nextDouble();
        for (int i=-100;i<100;i++){
            double x=a*Math.pow(i,3)+b*Math.pow(i,2)+c*i+d;
            double y=a*Math.pow(i+1,3)+b*Math.pow(i+1,2)+c*(i+1)+d;
            double m=x*y;
            String m1 = String.format("%.3f", m);
            double v = Double.parseDouble(m1);
            if (v<=0){
                for (double j=i;j<=i+1-0.01;j=j+0.01){
                    double z=a*Math.pow(j,3)+b*Math.pow(j,2)+c*j+d;
                    double f=a*Math.pow(j+0.01,3)+b*Math.pow(j+0.01,2)+c*(j+0.01)+d;
                    double n=z*f;
                    String n1 = String.format("%.3f", n);
                    double v1 = Double.parseDouble(n1);

                    String z1 = String.format("%.3f", z);
                    double z2 = Double.parseDouble(z1);

                    String f1 = String.format("%.3f", f);
                    double f2 = Double.parseDouble(f1);
                    if (v1<=0){
                        String s;
                        if (Math.abs(z)>Math.abs(f)){
                            s = String.format("%.2f", j+0.01);
                        }else {
                            s = String.format("%.2f", j);
                        }
                        if (!list.contains(s)) list.add(s);
                        break;
                    }
                }
            }
        }

        System.out.println(list.get(0)+" "+list.get(1)+" "+list.get(2));

    }
}

有没有Java大佬能给我的代码优化一下,浮点数计算机制我真的好烦啊!!!

2023/12/24 20:16
加载中...