题目如下:
请用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;