2013-11-09 51 views
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

+0

你應該寫一個控制檯應用程序這需要從它的輸入並執行許多Java語句。程序結束後,它將退出代碼返回到控制檯。 –

+0

公平地說,這個規範寫得很差。無論如何,你只需要編寫一些if/else語句(比如'if(K> 0)')做他們希望你做的任何計算,然後大概用'System.out.println'將它打印到控制檯上。 –

+0

此問題更適用於http://programmers.stackexchange.com/ – Salandur

回答

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

然後我們關閉}阻止

} 

我認爲這足以讓你開始。

+0

謝謝!我現在明白這一點。現在它到了困難的部分......我如何將輸入分組爲K組? – user2974706

+0

so ..示例輸入:3 1 2 3 4 5 6 7 8 解決方案:(1 * 2 * 3)+(4 * 5 * 6)+(7 * 8) 真正感謝您正確的方向! – user2974706

+0

爲此,您需要將'args'從'1'循環到'args.length - 1'。你可以使用2個循環,其中一個嵌套在另一個內部,或者使用1個單一循環和一個計數器。使用任何一種方式對你最有意義。 –