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;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值