用连续自然数之和来表达整数

【用连续自然数之和来表达整数】一个整数可以由连续的自然数之和来表示。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。
输入描述:
    一个目标整数T (1 <=T<= 1000)

输出描述:
    该整数的所有表达式和表达式的个数。如果有多种表达式,输出要求为:
    1.自然数个数最少的表达式优先输出
    2.每个表达式中按自然数递增的顺序输出,具体的格式参见样例。在每个测试数据结束时,输出一行”Result:X”,其中X是最终的表达式个数。

示例1:
输入
    9

输出
    9=9
    9=4+5
    9=2+3+4
    Result:3

import java.util.*;

public class Main{
    public static void main(String[]args){
        Scanner input = new Scanner(System.in);
        int i = input.nextInt();
        calculate(i);
    }
    public static void calculate(int number){
        int n = number;
        int sum=0;
        for(int i = 1; i*(i+1) <= 2*number; i++){
            List<Integer> list = new ArrayList<>();
            int min = (number*2/i- i + 1)/2;
            if (min*i + (i*(i-1)/2) == number){
                for(int j=0;j<i;j++){
                    list.add(min+j);
                }
            }
            if(!list.isEmpty()){
                String str = number + "=";
                for(int i1=0; i1 < list.size(); i1++){
                    if(i1==0){
                        str += list.get(i1);
                    }else{
                        str = str + "+" + list.get(i1);
                    }
                }
                sum++;
                System.out.println(str);
            }
        }
        System.out.println("Result:"+sum);
    }
}



全部评论

相关推荐

就只能3个月,但是要求长期全职实习
Swaying:你确实是能长期实习啊,但是你那时候有事也没啥办法嘛
点赞 评论 收藏
分享
04-21 11:22
已编辑
中华女子学院 UE4
耐心学习_佩可officical:直接举报他,佬,违反劳动法我记得boss会下架
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务