2017-04-01 34 views
0

我想輸出反向擴展和,這應該給我一個這樣的輸出:反向如何輸出擴展和

反向擴展和: 輸出反向擴展的總和。 例如,如果用戶輸入7,那麼你的程序應該輸出:

7+6+5+4+3+2+1=28 

下面的代碼是給我一個不停的輸出,而不是+-12+-13格式:

public static int printSum(int n, boolean reverse) { 
    int sum = 0; 
    String s = ""; 
    for(int i = 1; i < n+1; i--) { 
     sum += i;//was = 
     //System.out.print(i + "+"); 
    } 
    for(int i = 1; i <n; i--) { 
     s =String.valueOf(i); 
     System.out.print(s + "+"); 
    } 
    //System.out.print(i); 

    System.out.print(n + "=" + sum); 
    return sum; 
} 

我用在main方法case語句來調用printSum方法:

//reverse expanded sum 
case 2: 
    System.out.print("Enter a positive integer.\n");  
    number = console.nextInt(); 
    printSum(number, false); 
    break; 
+0

我強烈建議埃裏克利珀的「[如何調試小程序(http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)」;關於隔離意見像這樣的錯誤。這是幫助中心「[問]」底部列出的幾篇優秀文章之一。提供[mcve]的過程在您提出問題之前可能已經解決了您的問題。 (如果沒有別的,它可能會顯示你從來沒有真正使用'reverse'參數。) –

回答

1

想想這樣做,你什麼掛在圖像假設只需要給出正整數「輸入一個正整數。\ n」個

public static int printSum(int n) { 
     int sum = 0; 
     for(int x = 0; x < n; x++){ 
      sum += n - x; 
      if(x != n - 1){ 
       System.out.print((n - x) + "+"); 
      } 
      else{ 
       System.out.print((n - x) + "=" + sum); 
      } 
     } 
     return sum; 
    } 
-1

我想你的邏輯是正確的在一定程度上。嘗試這個。

public static int printSum(int n, boolean reverse){ 

    int sum = 0; 
    for(int i = n ; i>0 ; i--){ 
    sum += i; 
    if(i > 1){ 
     System.out.print(i + "+"); 
    }else{ 
     System.out.print(i); 
    }  
    } 
    System.out.print(n + "=" + sum); 
    return sum; 
}