java實現輸入一個正整數n,輸出全部連續正整數相加後等於n的所有序列。
阿新 • • 發佈:2018-12-31
題目如下:
請用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;