Java 理解这项任务';求和';
我很难理解这项任务要求我做什么。我是一个绝对的初学者,通常需要学习几周的Java/编程,这对我来说非常困难。因此,我为标题中的不具体表示歉意 如果有人能给我解释一下,我会非常感激,也许可以举一个例子(我不是要求别人帮我做这项任务,我只是觉得这样更容易理解),这样我就可以知道该做什么了 多谢各位 求和规范: 此程序从命令行获取输入Java 理解这项任务';求和';,java,sum,Java,Sum,我很难理解这项任务要求我做什么。我是一个绝对的初学者,通常需要学习几周的Java/编程,这对我来说非常困难。因此,我为标题中的不具体表示歉意 如果有人能给我解释一下,我会非常感激,也许可以举一个例子(我不是要求别人帮我做这项任务,我只是觉得这样更容易理解),这样我就可以知道该做什么了 多谢各位 求和规范: 此程序从命令行获取输入 The first input is K, an integer, followed by an arbitrary number a_1, ..., a_N of f
The first input is K, an integer, followed by an arbitrary number a_1, ..., a_N of floating-point numbers.
If K=0, then N is output.
If K > 0, then the a_i are grouped in groups of size K, inside the groups the numbers are multiplied, and all the products are added, yielding the output.
If K < 0, then the summation sums up the reciprocal values of the products.
In the special case K=1 the output thus is a_1 + ... + a_N.
In the case K=-1 the output is 1/a_1 + ... + 1/a_N.
There are two error cases:
If no command-line argument is given, then error-code 1 is to be returned.
If K < 0, and one of a_i = 0, then error-code 2 is to be returned.
In both cases there must be no output.
The return-code of a program is set via System.exit(code);
第一个输入是K,一个整数,后面是一个任意数a_1,…,一个浮点数。
如果K=0,则输出N。
如果K>0,则a_i被分组为大小为K的组,组内的数字相乘,所有乘积相加,得到输出。
如果K<0,则求和将乘积的倒数相加。
在特殊情况下K=1,因此输出为_1+…+a\N。
在K=-1的情况下,输出为1/a_1+…+1/a\N。
有两种错误情况:
如果没有给出命令行参数,则返回错误代码1。
如果K<0,且其中一个a_i=0,则返回错误代码2。
在这两种情况下都必须没有输出。
通过System.exit(代码)设置程序的返回代码;
请注意,程序的返回代码是在命令行上通过echo$?。
决不能有任何其他输出。此外,不允许使用额外的空格或换行符
以下是无错误情况下的示例:您可以在此处找到命令行参数:
public static void main(String args[]) {
// ^ these are the command line arguments
所以为了得到K
int K = Integer.parseInt(args[0]);
但实际上你不应该这样写,因为这是Java,Java变量应该以小写字母开头
int k = Integer.parseInt(args[0]);
首先,我们来处理k=0的情况。我们必须测试k是否为0:
if(k == 0) {
如果是,那么N是附加参数的数量,也就是
int numberOfAdditionalArguments = args.length - 1;
然后我们把它打印出来(就像上面说的那样,之后没有换行!)
然后我们关闭}块
}
我认为这就足够让您开始了。您应该编写一个控制台应用程序,从中获取输入并执行许多Java语句。程序完成后,它会将退出代码返回控制台。公平地说,在我看来,规范编写得相当糟糕。不管怎样,您只需要编写一些if/else语句(如
if(K>0)
)即可执行他们希望您执行的任何计算,然后使用System.out.println
将其打印到控制台上。这个问题更合适,因为伪代码实际上一步一步地描述程序的逻辑。主要的挑战是理解每个句子(或程序的组件,如变量K)并用java语法忠实地实现它。谢谢!我现在明白了。现在是最难的部分。。。如何将输入分组为K组?那么。。示例输入:3 1 2 3 4 5 6 7 8解决方案:(1*2*3)+(4*5*6)+(7*8)正确方向上的一点将非常有用!为此,您需要将args
从1
循环到args.length-1
。您可以使用两个循环(其中一个嵌套在另一个循环中)或使用一个单循环和一个计数器来执行此操作。选择对你最有意义的方式。
}