首页 > 其他分享 >用连续自然数之和来表达整

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

时间:2024-05-18 22:30:26浏览次数:24  
标签:输出 表达 10 int 自然数 整数 连续 表达式

题目描述

一个整数可以由连续的自然数之和来表示给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式

输入描述

一个目标整数T(1<=T<=1000)

输出描述

该整数的所有表达式和表达式的个数。如果有多种表达式,输出要求为:

自然数个数最少的表达式优先输出

每个表达式中按自然数递增的顺序输出,具体的格式参见样例。

在每个测试数据结束时,输出一行”Result:X”,其中X是最终的表达式个数

输入
9

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

说明 整数9有三种表达方法:

示例二
输入
10
输出
10=10
10=1+2+3+4
Result:2

/**
 * 用连续自然数之和来表达整数
 */
public class SumOfNaturalNumber {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int middle = n % 2 == 0 ? n / 2 : n / 2 + 1; // 不需要遍历到底

        List<String> list = new ArrayList<>();
        for (int i = 1; i <= middle; i++) {
            int sum = 0;
            StringBuilder sb = new StringBuilder();
            for (int j = i; sum <= n; j++) {
                if (sum < n) {
                    sum += j;
                    sb.append(j).append("+");
                } else {
                    sb.deleteCharAt(sb.length() - 1);// 删除+号
                    list.add("t=" + sb);
                    break;
                }
            }
        }

        list.sort(Comparator.comparingInt(String::length));
        System.out.println("t=" + n); // n自己
        list.forEach(System.out::println);
        System.out.println(list.size() + 1);
    }
}

标签:输出,表达,10,int,自然数,整数,连续,表达式
From: https://www.cnblogs.com/cloudrich/p/18199857

相关文章

  • 代码随想录算法训练营第十一天 | 20.有效的括号 1047.删除字符串中的所有相邻 重复项
    20.有效的括号题目链接文章讲解视频讲解思路:遍历字符串,如果栈不为空,则进行匹配   如果匹配则出栈,否则入栈   如果栈为空,直接入栈   遍历结束后栈为空则说明全部匹配,否则没有全部匹配classSolution{public:boolisValid(strings){stack<cha......
  • 代码随想录算法训练营第第11天 | 20. 有效的括号 、1047. 删除字符串中的所有相邻重
    今天的题主要是关于栈的,比较简单,一次性过20.有效的括号讲完了栈实现队列,队列实现栈,接下来就是栈的经典应用了。大家先自己思考一下有哪些不匹配的场景,在看视频我讲的都有哪些场景,落实到代码其实就容易很多了。题目链接/文章讲解/视频讲解:https://programmercarl.com/0020.......
  • 表达式树求值的空间复用
    回忆一致\(\mathsf{NC}^1\)电路是说一个\(O(\logn)\)深度,可以由对数空间Turing机生成的布尔电路,这个\(O(\logn)\)层的电路暴力展开就是一颗\(n^{O(1)}\)大小的表达式树.反过来,对于任何一颗表达式树,我们也可以用树分治的方法将其对数空间规约到一个\(O(\log......
  • 通过MVEL表达式和Apache Chain职责链模式解耦MQ消息处理节点的实践应用
    导读本文主要讲解了MVEL表达式和责任链设计模式相结合一起的消息处理解决方案设计、解耦消息处理节点以及方便代码维护扩展。通过“订单拆单消息”的接入作为具体实践案例,简要阐述了MVEL表达式和ApacheChain职责链设计模式应用场景。希望通过本文,读者可以对MVEL表达式和责任链......
  • shell脚本-正则表达式与文本处理器
    一、正则表达式1.正则表达式概述正则表达式REGEXP(RegularExpressions)由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符......
  • 【Cron表达式】小贴士
    表达式检测网站 CRON有如下两种语法格式:秒分小时日期月份星期年秒分小时日期月份星期字符含义示例*表示匹配域的任意值在分这个域使用*,即表示每分钟都会触发事件。?表示匹配域的任意值,但只能用在日期和星期两个域,因为这两个......
  • lambda表达式
    目录面向过程变成思想publicclassTest{publicstaticvoidmain(String[]args){//内部类实现Runnable接口Runnablerunnable1=newRunnable(){@Overridepublicvoidrun(){System.out.println("内......
  • 正则表达式 grep sed awk
    正则表达式表示字符匹配. 匹配任意单个字符,可以是一个汉字[] 匹配指定范围内的任意单个字符,示例:[zhou] [0-9] [] [a-zA-Z][[:alpha:]][0-9a-zA-Z]=[:alnum:][^]匹配指定范围外的任意单个字符,示例:[^zhou][^a.z][a.z][:alnum:]字母和数字[:alp......
  • 使用c#强大的表达式树实现对象的深克隆之解决循环引用的问题
    在上一期博客里,我们提到使用使用c#强大的表达式树实现对象的深克隆,文章地址:https://www.cnblogs.com/gmmy/p/18186750。但是文章里没有解决如何实现循环引用的问题。循环引用在C#中,循环引用通常发生在两个或更多的对象相互持有对方的引用,从而形成一个闭环。这种情况在使用面向对......
  • 使用c#强大的表达式树实现对象的深克隆
    使用c#强大的表达式树实现对象的深克隆 一、表达式树的基本概念表达式树是一个以树状结构表示的表达式,其中每个节点都代表表达式的一部分。例如,一个算术表达式 a+b 可以被表示为一个树,其中根节点是加法运算符,它的两个子节点分别是 a 和 b。在LINQ(语言集成查询)中,表达......