Java 二次规划特定输出
我希望二次型程序只打印必要的输出。 代码如下:Java 二次规划特定输出,java,quadratic-programming,Java,Quadratic Programming,我希望二次型程序只打印必要的输出。 代码如下: public static void main(String[] args) { double a = Double.parseDouble(args[0]); double b = Double.parseDouble(args[1]); double c = Double.parseDouble(args[2]); double temp, first, second; temp = (b*b -
public static void main(String[] args) {
double a = Double.parseDouble(args[0]);
double b = Double.parseDouble(args[1]);
double c = Double.parseDouble(args[2]);
double temp, first, second;
temp = (b*b - (4 * a * c));
first = ((-1 * b) + Math.sqrt(temp)) / (2 * a);
second = ((-1 * b) - Math.sqrt(temp)) / (2 * a);
if (temp > 0)
System.out.println (first);
if (temp == 0)
if (first == second)
System.out.println (first);
else
System.out.println (first);
System.out.println (second);
if (temp < 0)
System.out.println ("There are no solutions.");
}
publicstaticvoidmain(字符串[]args){
double a=double.parseDouble(args[0]);
double b=double.parseDouble(args[1]);
double c=double.parseDouble(args[2]);
双温,第一,第二;
温度=(b*b-(4*a*c));
第一个=(-1*b)+数学sqrt(temp))/(2*a);
第二个=(-1*b)-Math.sqrt(temp))/(2*a);
如果(温度>0)
System.out.println(第一);
如果(温度==0)
如果(第一个==第二个)
System.out.println(第一);
其他的
System.out.println(第一);
System.out.println(秒);
如果(温度<0)
System.out.println(“没有解决方案”);
}
当我写作时:java二次型1 0 1
它带回:“楠
没有解决办法。”
什么是NaN?
当我写作时:java二次1-21
它打印两次:
"1.0
1.0". 如何转换为一个?因为我已经编写了这个if命令:
如果(第一个==第二个)
非常感谢你 NaN问题已得到回答,并在该问题的评论和答案的各个链接中找到答案 多个输出可能是因为最后一个
else
。即使您对代码进行了缩进,使其看起来像两个println
s仅在temp==0
和first!=第二个
,它们不是,只有第一个println
在else
中,第二个每次都会执行。取而代之的是:
else {
System.out.println(first);
System.out.println(second);
}
当b=0时,这将变为:
temp = -(4 * a * c);
当a和c为正时,温度为负,不能取负数的平方根。嘿,非常感谢!它确实有效,但当有两个答案时仍然存在问题。例如,对于“java二次1 1-2”-它只打印“1.0”,甚至认为它应该打印1.0和-2.0。@Dana在这种情况下
temp
是9(1*1-(4*1*-2)=1--8=9),所以它将进入if(temp>0)
并首先打印。我修复了它!谢谢:)
temp = -(4 * a * c);