`

一道XX公司程序设计大赛题

    博客分类:
  • java
 
阅读更多

题目描述:一个正整数有可能可以被表示为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);
 } 
 }
}

 

分享到:
评论

相关推荐

    宁波市第届中小学生计算机程序设计竞赛复赛试题.pdf

    通常,正式的程序设计竞赛试题会有一个清晰的格式和详细的描述,参赛者需要仔细阅读并理解每个问题的要求。在此基础上,选手需要合理运用数据结构和算法知识,编写出能在限定时间内正确解决问题的程序。

    JAVA程序设计竞赛练习

    JAVA 程序设计竞赛练习 本资源摘要信息主要讲述了 JAVA 程序设计竞赛练习中的一些重要知识点,包括世纪末的星期、马虎的算式、连号区间数等。 一、世纪末的星期 世纪末的星期是一个有趣的问题。根据题目,1999 年...

    2021常州市程序设计小能手真题及题解

    ### 2021年常州市程序设计小能手竞赛真题解析 #### 第一题:书页(Book) **题目概述**: 本题考察基本的条件判断逻辑,即通过给定的数值来决定输出“L”或“R”。根据样例输入与输出,我们可以推断出题目要求的是...

    2020年XX市高校信息技术考试Python程序设计试题解析

    内容概要:本文档为2020年XX市高等学校信息技术水平考试的Python程序设计及应用试卷,涵盖单选题、程序填空题、程序调试题和编程题。主要内容包括基本语法、函数、文件操作、数据处理和图形绘制等方面的知识,难度...

    第一届XX大学Python程序设计大赛赛项规程【模板】.pdf

    在第一届XX大学Python程序设计大赛中,主要考察的是参赛者的编程实战能力和问题解决能力。 一、竞赛内容 本次大赛的核心在于编程题,旨在测试学生如何使用Python来处理实际问题。这不仅要求参赛者掌握Python的基础...

    XX公司消防知识竞赛试题库及答案.pdf

    XX公司消防知识竞赛试题库及答案.pdf

    LPC23xx/24xx程序

    总之,LPC23xx/24xx程序设计是一门综合性的技术,涉及到处理器架构、操作系统、硬件接口、软件工程等多个方面。通过不断学习和实践,开发者可以充分利用这些微控制器的潜力,创造出更高效、更可靠的嵌入式系统。

    最新 GD32F4xx_程序20190109

    最新 GD32F4xx_程序20190109最新 GD32F4xx_程序20190109最新 GD32F4xx_程序20190109最新 GD32F4xx_程序20190109最新 GD32F4xx_程序20190109最新 GD32F4xx_程序20190109最新 GD32F4xx_程序20190109最新 GD32F4xx_程序...

    Xx石油公司安全生产知识学习竞赛试题.docx

    Xx石油公司安全生产知识学习竞赛试题.docx

    20XX知识竞赛试题判断题及答案汇编.doc

    20XX知识竞赛试题判断题及答案汇编.doc

    MTK 65XX驱动程序

    MTK 65XX驱动程序是针对MediaTek公司生产的65XX系列芯片设计的硬件驱动。MediaTek是一家知名的集成电路设计公司,其65XX系列主要应用于智能手机和平板电脑等移动设备,提供强大的处理性能和多媒体功能。驱动程序是...

    程序设计大赛通讯稿.docx

    ### 程序设计大赛知识点解析 #### 一、大赛目的与意义 1. **加强教学质量工程建设**:通过举办程序设计大赛,旨在强化学校的教学质量,推动教学改革与创新,提升教育质量。 2. **提高学生的创造力及综合能力**:...

    程序设计大赛策划书(模板).doc

    为激发计算机技术系学生的创新意识、提升他们的编程技能以及团队协作能力,xx学院计划举办一场别开生面的程序设计大赛。本次大赛的策划书旨在详细阐述活动的背景、目的、组织结构、市场分析以及宣传策略,以期达到...

    STM32F0xx程序模板

    在进行STM32F05xx的程序设计时,通常会采用MDK-ARM(Keil uVision)作为开发环境,因为其强大的集成开发能力,支持多种MCU和编译器。 MDK-ARM是一个完整的嵌入式软件开发工具套件,它包括了编辑器、编译器、链接器...

    顺序结构程序设计.doc

    顺序结构程序设计 顺序结构程序设计是计算机编程的基础结构之一,该结构的设计目的是为了熟悉赋值运算符的使用,掌握两变量交换数据的方法,熟悉整数相除、取余运算及数据类型转换等内容。 1. 赋值运算符的使用 ...

    程序设计大赛策划书(模板).pdf

    本次策划书是针对xx学院计算机技术系的一场程序设计大赛,旨在通过比赛的形式,提升学生的技术素养,增强他们对计算机编程的兴趣,同时也为赞助商提供了一个展示品牌和产品、开拓市场的平台。 【活动背景与目的】 ...

    XX全国防汛抗旱知识大赛试题及答案.doc

    XX全国防汛抗旱知识大赛试题及答案.doc

Global site tag (gtag.js) - Google Analytics