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;


版权声明:本文为Allisonton原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。