题目描述:一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:
15=1+2+3+4+5
15=4+5+6
15=7+8
请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
输入数据:一个正整数,以命令行参数的形式提供给程序。
输出数据:在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小正整数开始、以从小到大的顺序打印。如果结果有多个序列,按各序列的最小正整数的大小从小到大打印各序列。此外,序列不允许重复,序列内的整数用一个空格分隔。如果没有符合要求的序列,输出“NONE”。
例如,对于15,其输出结果是:
1 2 3 4 5
4 5 6
7 8
对于16,其输出结果是:
NONE
java实现:
import java.util.Scanner; public class FindNumber { /** * @param args */ public static void OddNumber(float m ,int n){ /**处理奇数 * @param args */ boolean isWrite = false; for(;n>1;n--){ int checkResult = checkNumber(m,n); switch (checkResult){ case 0: { //System.out.println("--------------------There exist numbers when n="+n+"--------------------"); int count = n/2; for(int i = 0; i < n; i++){ if(i==n-1){ System.out.println((int)m/n-count+"\t"); count--; } else{ System.out.print((int)m/n-count+"\t"); count--; } } isWrite = true; break; } case 1: { //System.out.println("--------------------There exist numbers when n="+n+"--------------------"); int count = n/2; for(int i = 0; i < n; i++){ if(i==n-1){ System.out.println((int)m/n-count+1+"\t"); count--; } else{ System.out.print((int)m/n-count+1+"\t"); count--; } } isWrite = true; break; } default:{} } } if(!isWrite) { System.out.println("NONE"); } } public static void EvenNumber(float m ,int n){ /**处理偶数 * @param args */ boolean isWrite = false; for(;n>1;n--){ int checkResult = checkNumber(m,n); switch (checkResult){ case 0: { //System.out.println("--------------------There exist numbers when n="+n+"--------------------"); break; } case 1: { int count = n/2; if(n == 2){ break; } for(int i = 0; i < n; i++){ if(i==n-1){ System.out.println((int)m/n-count+1+"\t"); count--; } else{ System.out.print((int)m/n-count+1+"\t"); count--; } } isWrite = true; break; } default:{} } } if(!isWrite) { System.out.println("NONE"); } } public static int checkNumber(float m ,int n){ /**检查m/n是否等于k(正整数)+0.5,是返回true,否则返回false。 * m代表输入的数,n代表输出成功序列数个数 * @param args */ float fShang = m/n; int iShang = (int) (m/n); double iCha = fShang - iShang; if(iCha ==0){ //System.out.println(m+"/"+n+"\tequal\t"+fShang+"\ttrue"); return 0;// 有解 } if(iCha == 0.5){ //System.out.println(m+"/"+n+"\tequal\t"+fShang+"\ttrue"); return 1;//有解 } else{ //System.out.println(m+"/"+n+"\tequal\t"+fShang+"\tfalse"); return 2;//无解 } } public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Please input a number"); Scanner scanner = new Scanner(System.in); float inputNumber = scanner.nextFloat(); int flag = (int) (Math.sqrt(0.25+2*inputNumber)-0.5); if(inputNumber%2 == 0){ System.out.println("U enter an Even Number:"+(int)inputNumber); EvenNumber(inputNumber,flag); } else{ System.out.println("U enter an Odd Number:"+(int)inputNumber); OddNumber(inputNumber,flag); } } }
相关推荐
通常,正式的程序设计竞赛试题会有一个清晰的格式和详细的描述,参赛者需要仔细阅读并理解每个问题的要求。在此基础上,选手需要合理运用数据结构和算法知识,编写出能在限定时间内正确解决问题的程序。
### 2021年常州市程序设计小能手竞赛真题解析 #### 第一题:书页(Book) **题目概述**: 本题考察基本的条件判断逻辑,即通过给定的数值来决定输出“L”或“R”。根据样例输入与输出,我们可以推断出题目要求的是...
在第一届XX大学Python程序设计大赛中,主要考察的是参赛者的编程实战能力和问题解决能力。 一、竞赛内容 本次大赛的核心在于编程题,旨在测试学生如何使用Python来处理实际问题。这不仅要求参赛者掌握Python的基础...
XX公司消防知识竞赛试题库及答案.pdf
总之,LPC23xx/24xx程序设计是一门综合性的技术,涉及到处理器架构、操作系统、硬件接口、软件工程等多个方面。通过不断学习和实践,开发者可以充分利用这些微控制器的潜力,创造出更高效、更可靠的嵌入式系统。
最新 GD32F4xx_程序20190109最新 GD32F4xx_程序20190109最新 GD32F4xx_程序20190109最新 GD32F4xx_程序20190109最新 GD32F4xx_程序20190109最新 GD32F4xx_程序20190109最新 GD32F4xx_程序20190109最新 GD32F4xx_程序...
Xx石油公司安全生产知识学习竞赛试题.docx
20XX知识竞赛试题判断题及答案汇编.doc
MTK 65XX驱动程序是针对MediaTek公司生产的65XX系列芯片设计的硬件驱动。MediaTek是一家知名的集成电路设计公司,其65XX系列主要应用于智能手机和平板电脑等移动设备,提供强大的处理性能和多媒体功能。驱动程序是...
### 程序设计大赛知识点解析 #### 一、大赛目的与意义 1. **加强教学质量工程建设**:通过举办程序设计大赛,旨在强化学校的教学质量,推动教学改革与创新,提升教育质量。 2. **提高学生的创造力及综合能力**:...
在进行STM32F05xx的程序设计时,通常会采用MDK-ARM(Keil uVision)作为开发环境,因为其强大的集成开发能力,支持多种MCU和编译器。 MDK-ARM是一个完整的嵌入式软件开发工具套件,它包括了编辑器、编译器、链接器...
程序设计大赛是一种旨在激发学生创新精神、提升编程技能和团队合作能力的竞赛活动。该策划书主要针对xx学院计算机技术系的学生,旨在通过举办此类大赛,不仅锻炼学生的实践能力,同时也为企业提供了一个展示产品、...
"XX公司网络设计方案" 本文档是对XX公司网络设计方案的详细说明,涵盖了需求分析、网络设计目标、网络拓扑结构、网络设备选择、服务器和客户端软件平台的选择、工程预算等多个方面的内容。 需求分析是网络设计的...
顺序结构程序设计 顺序结构程序设计是计算机编程的基础结构之一,该结构的设计目的是为了熟悉赋值运算符的使用,掌握两变量交换数据的方法,熟悉整数相除、取余运算及数据类型转换等内容。 1. 赋值运算符的使用 ...
本次策划书是针对xx学院计算机技术系的一场程序设计大赛,旨在通过比赛的形式,提升学生的技术素养,增强他们对计算机编程的兴趣,同时也为赞助商提供了一个展示品牌和产品、开拓市场的平台。 【活动背景与目的】 ...
XX全国防汛抗旱知识大赛试题及答案.doc
XX公司网络设计方案 XX公司网络需求主要有以下几点: (1) 共有A、B、C、D、E、F六个部门,分别拥有20、30、45、35、25、5台计算机。 (2) A、B、C、D、E部门都有各自独立的文件服务器,且文件服务器通常不允许跨部门...