1. 程式人生 > >java實現輸入一個正整數n,輸出全部連續正整數相加後等於n的所有序列。

java實現輸入一個正整數n,輸出全部連續正整數相加後等於n的所有序列。

題目如下:
請用java實現輸入一個正整數n,輸出以下格式,全部連續正整數相加後等於n的所有序列。
例如:
15=1+2+3+4+5;
15=4+5+6;
15=7+8;
我從網上文章中得到的思路,進行了自己的想法的修改,程式碼如下:

public class Sum {
    //將實現方式放入Sum方法中,在主函式中呼叫
    public Sum(int num){

        int sum = 1;//初始化sum,當序列中數增加到num時,輸出滿足條件的序列
        int beg = 1;//從1開始
        int
cur = 1;//當前數字 while(beg <=num/2+1){ if(sum == num){ System.out.print(num + "="); for(int k = beg;k<=cur;k++){ if(k==cur){ System.out.print(k+";"); } else{ System.out
.print(k + "+"); } } System.out.println(); sum = sum - beg; beg++; cur++; sum +=cur; } if(sum>num){ sum = sum - beg; beg++; } else
{ cur++; sum +=cur; } } } public static void main(String[] args) { new Sum(15); } }

執行結果如下:
15=1+2+3+4+5;
15=4+5+6;
15=7+8;