java实现输入一个正整数n,输出全部连续正整数相加后等于n的所有序列。

来源:互联网 发布:avi 编辑软件 编辑:程序博客网 时间:2024/05/16 13:38

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

0 0
原创粉丝点击