2016-04-22 152 views
-5

編寫並測試一個方法printSquares,它具有整數參數n,並打印從1到n的整數的正方形,用逗號分隔。它應該先按降序打印奇數整數的正方形,然後按照偶數整數的正方形按升序排列。它不打印換行符。如果指定的整數小於1,它應該拋出一個IllegalArgumentException。例如:printSquares(4)應該打印9,1,4,16打印平方(1)應該打印1 printSquares(7)應該打印49,25,9,1 ,4,16編寫並測試一個方法PrintSquare

+0

聽起來像一個有趣的家庭作業問題。你爲什麼與我們分享? –

+0

可能不是這個論壇的主題,但忘記了......你有什麼嘗試? – user1032531

回答

0

你有沒有去,我希望你的老師可以這樣做(這會引發異常,如果你輸入數字並在最後添加一個無用的逗號,如果真的困擾你,我可以修復)

public static void printOrder(int n) { 
     decOrderOdd(n); 
     acsOrderEven(1, n); 
    } 
    public static void decOrderOdd(int n) { 
     if (n > 0) 
     { 
      if (n%2 == 1) 
      { 
       System.out.print(n*n + ", "); 
       decOrderOdd(n-2); 
      } 
      if (n%2 == 0) 
       decOrderOdd(n-1); 
     } 
    } 

    public static void acsOrderEven(int n, int target) { 
     if (n <= target) 
     { 
      if (n%2 == 0) 
      { 
       System.out.print(n*n + ", "); 
       acsOrderEven(n + 2, target); 
      } 
      if (n%2 == 1) 
       acsOrderEven(n+1, target); 
     } 
    } 
相關問題