题目描述:一个正整数有可能可以被表示为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); } } }
相关推荐
通常,正式的程序设计竞赛试题会有一个清晰的格式和详细的描述,参赛者需要仔细阅读并理解每个问题的要求。在此基础上,选手需要合理运用数据结构和算法知识,编写出能在限定时间内正确解决问题的程序。
JAVA 程序设计竞赛练习 本资源摘要信息主要讲述了 JAVA 程序设计竞赛练习中的一些重要知识点,包括世纪末的星期、马虎的算式、连号区间数等。 一、世纪末的星期 世纪末的星期是一个有趣的问题。根据题目,1999 年...
### 2021年常州市程序设计小能手竞赛真题解析 #### 第一题:书页(Book) **题目概述**: 本题考察基本的条件判断逻辑,即通过给定的数值来决定输出“L”或“R”。根据样例输入与输出,我们可以推断出题目要求的是...
内容概要:本文档为2020年XX市高等学校信息技术水平考试的Python程序设计及应用试卷,涵盖单选题、程序填空题、程序调试题和编程题。主要内容包括基本语法、函数、文件操作、数据处理和图形绘制等方面的知识,难度...
在第一届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. **提高学生的创造力及综合能力**:...
为激发计算机技术系学生的创新意识、提升他们的编程技能以及团队协作能力,xx学院计划举办一场别开生面的程序设计大赛。本次大赛的策划书旨在详细阐述活动的背景、目的、组织结构、市场分析以及宣传策略,以期达到...
在进行STM32F05xx的程序设计时,通常会采用MDK-ARM(Keil uVision)作为开发环境,因为其强大的集成开发能力,支持多种MCU和编译器。 MDK-ARM是一个完整的嵌入式软件开发工具套件,它包括了编辑器、编译器、链接器...
顺序结构程序设计 顺序结构程序设计是计算机编程的基础结构之一,该结构的设计目的是为了熟悉赋值运算符的使用,掌握两变量交换数据的方法,熟悉整数相除、取余运算及数据类型转换等内容。 1. 赋值运算符的使用 ...
本次策划书是针对xx学院计算机技术系的一场程序设计大赛,旨在通过比赛的形式,提升学生的技术素养,增强他们对计算机编程的兴趣,同时也为赞助商提供了一个展示品牌和产品、开拓市场的平台。 【活动背景与目的】 ...
XX全国防汛抗旱知识大赛试题及答案.doc