0
問題的措辭是 「Write a method writeSequence接受整數n作爲參數並打印n個數字的對稱序列,其中後接整數爲1,結尾爲1按升序整數從1開始,如下表所示:」使用遞歸打印出收斂和發散數字序列的故障
表基本上是:
1 = 1
2 = 1 1
3 = 2 1 2
4 = 2 1 1 2
5 = 3 2 1 2 3
6 = 3 2 1 1 2 3
我試圖代碼
public void writeSequence(int n){
if (n < 1){
throw new IllegalArgumentException();
}
if (n == 1){
System.out.print(n + " ");
}
else if (n == 2){
System.out.print(1 + " " + 1 + " ");
}
else if (n % 2 == 0){
System.out.print(n - (n/2) + " ");
writeSequence(n - (n/2));
System.out.print(n - (n/2) + " ");
}
else{
System.out.print(n-(n/2) + " ");
writeSequence(n - 2);
System.out.print(n-(n/2)+ " ");
}
}
對於輸入1-10,我的代碼沒有爲6,8和10生成正確答案。任何幫助都非常感謝。
編輯:在標題
編輯2
固定拼寫:
我的結果是
1 = 1
2 = 1 1
3 = 2 1 2
4 = 2 1 1 2
5 = 3 2 1 2 3
6 = 3 2 1 2 3 (wrong)
7 = 4 3 2 1 2 3 4
8 = 4 2 1 1 2 4 (wrong)
9 = 5 4 3 2 1 2 3 4 5
10 = 5 3 2 1 2 3 5 (wrong)
如果有人能告訴我在哪裏我已經在我的代碼中的錯誤會很好!
*我的代碼沒有產生正確答案爲6,8,和10 * - 究竟是什麼做的,什麼應該的做? – Bohemian
我在最後添加了一個編輯,顯示我的結束表是什麼樣子,看起來應該是什麼樣子! – mikecal7
請參閱:[爲什麼「有人可以幫助我?」不是真正的問題?](http://meta.stackoverflow.com/q/284236) – EJoshuaS