在 Java 中使用 Math.pow 来确定立方体的表面积以及'skipping'的困难



我正在写一个简单的程序来确定一些数学值,但我遇到了一个问题,它要求用户输入立方体边的长度,然后输出表面积(使用math.pow和公式6a^2)。我得到了公式和所有的东西,但也许我输入错了?我一直得到一个不同于我应该得到的答案…

System.out.print ("Please enter the length of a side of your cube: ");
a = in.nextDouble();
System.out.printf ("Surface area of your cube is : %.3fn", Math.pow (6*( a,2 )));

这个问题是关于间距还是什么?它只是不断给我括号的预期错误,但我相信一切看起来都很好。。。我还试图改变一些事情,比如((a,2)*6),我会得到同样的错误答案和预期错误):

~

我遇到的另一件事是,当我要求用户输入两个用空格分隔的数字时,为了用Math.max查找较大的数字,它是有效的,但随后它使用相同的数字来查找较小的数字。我不希望用户使用这些相同的数字,因为我希望他们输入一些其他新数字。。。

System.out.print ("Please enter two numbers separated by spaces: ");
a = in.nextDouble();
System.out.printf("Larger of the first two numbers is %.3fn", Math.max ( a,a ) );
System.out.print ("Please enter two numbers separated by spaces: ");
a = in.nextDouble();
System.out.printf ("Smaller of the first two number is %.3fn", Math.min ( a,a ) );

我是编程新手。非常感谢您的帮助!!

您的代码不正确,Math.pow(base, exponent)需要两个参数:-

System.out.printf ("Surface area of your cube is : %.3fn", Math.pow (6*( a,2 )));

应该是:-

System.out.printf ("Surface area of your cube is : %.3fn", 6 * Math.pow (a,2) );

而且,为了找到平方,你应该坚持琐碎的概念,即做(a*a),而不是选择Math.pow(基数,指数)

[注意->乘法比调用pow()方法更容易]。

当我要求用户输入用空格分隔的两个数字时使用Math.max的较大的一个,它可以工作,但随后它使用相同的数字要求较小的数字。我不希望用户使用这些数字与我希望他们输入的其他新数字相同。。。

首先,这应该是一个单独的问题。但是,即使这样,为了实现同样的目标,你也需要循环的知识,这样你就可以运行一个任务预定义的次数。

由于这个问题很简单,在计算完max()之后,您可以在下面要求更多的doubles。但是,这会有些复杂。我建议你循序渐进。按照书本/教程的顺序进行操作。

6a^2

这意味着CCD_ 3的平方的六倍。

Math.pow (6*( a,2 )

这毫无意义。它甚至不是有效的语法。您需要:

6*Math.pow (a,2 )

或者更简单地说

6*a*a

对于您提出的第二个问题,我建议您将用户输入的数字放入HashSet中,然后使用contains方法检查用户输入的数据以前是否使用过。您可以在这里查看HashSet的参考资料。

相关内容

最新更新