0

我很难理解这项任务要求我做什么。我是一个绝对的初学者,学习了几个星期的 Java/编程,这对我来说很难。因此,对于标题中没有非常具体的问题,我们深表歉意。

如果有人可以向我解释,我将非常感激,也许有一些示例代码(我不是要求人们为我完成任务,我只是觉得这样更容易理解)所以我可以知道该怎么做。

谢谢你。

求和规范:

该程序从命令行获取输入。

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);

请注意,程序的返回码是在命令行中通过 echo $? 获得的。绝不能有任何其他输出。也不允许额外的空格或换行符。

以下是无错误情况下的示例:http: //pastebin.com/F2uz262v

4

1 回答 1

0

您将在此处找到命令行参数:

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;

然后我们打印它(之后没有换行符,就像它说的那样!)

  System.out.print(numberOfAdditionalArguments);

然后我们关闭 } 块

}

我认为这足以让你开始。

于 2013-11-09T20:36:49.587 回答