用连续自然数之和来表达整数
【用连续自然数之和来表达整数】一个整数可以由连续的自然数之和来表示。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。
注意!答案仅作为参考(实际考试中下列代码通过用例100%,但不代表最优解)
一个整数可以由连续的自然数之和来表示
给定一个整数
计算该整数有几种连续自然数之和的表达式
并打印出每一种表达式
输入描述
一个目标整数t 1<= t <=1000
输出描述
1.该整数的所有表达式和表达式的个数
如果有多种表达式,自然数个数最少的表达式优先输出
2.每个表达式中按自然数递增输出
具体的格式参见样例
在每个测试数据结束时,输出一行"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
以上为华为笔试真题,本篇文章不保证代码完全与输出样例相同,只为更易读懂
话不多说,上代码
package com.test.bi;import java.util.Scanner;/*** 【用连续自然数之和来表达整数】一个整数可以由连续的自然数之和来表示。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。*/
public class ZiRanShu {public static void main(String[] args) {while (true){//只是做个循环输入方便测试System.out.println("请输入一个整数:");Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();mothd(n);}}public static void mothd(int n){int startNum = 0;int count = 1;System.out.println(n + "=" + n);/*** 研究此题发现实际上是求一个公差为1的等差数列,设首项为x,根据等差数列求和可知sum = (x+(x+(n-1)))*n/2* 可以推导出首项为x = (sum - n*(n-1)/2) / n = (2*sum -n*(n-1)) / 2*n* 由于不知道n具体为几项,则通过循环获取,其中若要n最大时,可考虑首项为1* 即可得到sum >= (1+(1+(n-1)))*n/2* 推导出sum >= n*(n+1)/2 可得出 n*(n+1)<=2*sum*/for (int i = 2; i * (i + 1)<= 2 * n; i++) {//此处变量设置n为要表示的整数,i为项数,根据题目要求可知i最小为两项if((2 * n - i * (i - 1)) % (2 * i) == 0){//求余,若除数为零说明此时的项数i可求得满足条件的首项startNum = (2 * n - i * (i - 1)) / (2 * i);//首项if (startNum>0){//排除可能为负数的情况StringBuilder result = new StringBuilder();for (int j = 0; j < i; j++) {result.append(startNum++).append("+");//先打印再做变量自增}result.deleteCharAt(result.length()-1);System.out.println(n + "=" + result);count++;}}}System.out.println("可用的连续自然数表示方法共有"+count+"种");}
}
用连续自然数之和来表达整数相关推荐
- 【华为OD机试真题 JAVA】用连续自然数之和来表达整数
JS版:[华为OD机试真题 JS]用连续自然数之和来表达整数 标题:用连续自然数之和来表达整数 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限 一个整数可以由连续的自然数之和来表 ...
- 【华为OD机试真题 JS】用连续自然数之和来表达整数
标题:用连续自然数之和来表达整数 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限 一个整数可以由连续的自然数之和来表示.给定一个整数,计算该整数有几种连续自然数之和的表达式,且打 ...
- 【用连续自然数之和来表达整数】
■ 题目描述 [用连续自然数之和来表达整数] 一个整数可以由连续的自然数之和来表示. 给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式. 输入描述 一个目标整数T (1 < ...
- 华为OD机试 - 用连续自然数之和来表达整数(Java JS Python)
题目描述 一个整数可以由连续的自然数之和来表示. 给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式 输入描述 一个目标整数T (1 <=T<= 1000) 输出描述 ...
- 华为od统一考试B卷【用连续自然数之和来表达整数】C++ 实现
所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录 题目 一个整数可以由连续的自然数之和来表示. 给定一个 ...
- 【华为机试真题Java】用连续自然数之和来表达整数
目录 题目描述 输入描述 输出描述 参考示例 参考代码 机试介绍 写在最后
- 华为OD机试题:整数表达为连续自然数之和
题目描述: 一个整数可以由连续的自然数之和来表示,给定一个整数,计算该整数有几种连续自然数之和的表达式,并打印出每一种表达式. 输入描述: 一个目标整数t 1<= t <=1000 输出描 ...
- HUAWEI 机试题:整数表达为连续自然数之和(Python解法)
题目描述: 一个整数可以由连续的自然数之和来表示,给定一个整数,计算该整数有几种连续自然数之和的表达式,并打印出每一种表达式. 输入描述: 一个目标整数t 1<= t <=1000 输出描 ...
- 整数拆分为连续自然数之和
闲得蛋疼: 连续自然数之和可以利用等差数列求和公式求得: , N=n*a+n*(n-1)/2: 其中N为需要拆分的整数,n为拆分后连续自然数个数,a为连续自然数中第一位数,比如: 36=11+12+1 ...
- 一个整数拆分为连续自然数之和
问题描述:将一个正整数,拆分成连续的自然数之和,输出所有可能的情况 例如: 3 = 1+2 10 = 1+2+3+4 16 = 5+6+7 ... 问题求解: 连续的自然数之和让我们想到了等差数列求和 ...
最新文章
- 你写的ML代码占多少内存?这件事很重要,但很多人还不懂
- python爬虫如何配置动态爬虫代理
- SQLite中的运算符表达式
- 英特尔CFO:裁员为加速转型 是艰难但正确的决定
- 生产环境中配置的samba
- 网易云信携手小天才Z6手表,让安全“看得见”
- mysql+server+80_Windows Server 2019 IIS10.0+PHP(FastCGI)+MySQL环境搭建教程
- GitBlit使用安装教程~
- db2与mysql语法区别,db2和mysql语法分析异同点
- 五眼网络安全机构联合发布事件响应指南
- 生活随笔: 毕业之前和毕业之后
- reportmachine中怎样实现“数据注脚footer1”里面的内容在每页显示
- 计算机科学导论课后总结_1
- ——黑马程序员——OC中Foundation下NSFileManager的使用
- 使用NLTK实现stemming
- android 通知写法_android清除通知栏消息的代码
- 电压跌落故障Matlab,基于MATLAB的电压跌落建模仿真分析探究.pdf
- 分享一个国内可用的ChatGPT网站,免费无限制,支持AI绘画 - AI 百晓生
- windows连接的蓝牙设备(如小爱同学),无法调节音量
- 英语说话方式的一点儿心得
热门文章
- python入门指南by许半仙-《江火欲燃山》《这题超纲了》《Python入门指南》
- 联合国可持续发展目标,中国大数据服务支持
- Uniapp Android原生插件开发
- word中的表格复制到html代码,怎样将Word中的表格复制到Excel中还保持原有内容和格式?...
- 如何用计算机算分数乘法,分数乘法怎么算
- python将图片合并到PDF
- msm8953 PWM背光
- micropython控制舵机_玩转micro:bit-用BXY控制小舵机、360舵机和带驱动N20电机
- 腾讯会议 .wemta 文件如何转码成 mp4 文件
- java源码app,飞飞CMS双端JAVA原生APP源码