`

一道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

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

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

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

    第一届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. **提高学生的创造力及综合能力**:...

    STM32F0xx程序模板

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

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

    程序设计大赛是一种旨在激发学生创新精神、提升编程技能和团队合作能力的竞赛活动。该策划书主要针对xx学院计算机技术系的学生,旨在通过举办此类大赛,不仅锻炼学生的实践能力,同时也为企业提供了一个展示产品、...

    XX公司网络设计方案doc.pdf

    "XX公司网络设计方案" 本文档是对XX公司网络设计方案的详细说明,涵盖了需求分析、网络设计目标、网络拓扑结构、网络设备选择、服务器和客户端软件平台的选择、工程预算等多个方面的内容。 需求分析是网络设计的...

    顺序结构程序设计.doc

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

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

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

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

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

    XX公司网络设计方案

    XX公司网络设计方案 XX公司网络需求主要有以下几点: (1) 共有A、B、C、D、E、F六个部门,分别拥有20、30、45、35、25、5台计算机。 (2) A、B、C、D、E部门都有各自独立的文件服务器,且文件服务器通常不允许跨部门...

Global site tag (gtag.js) - Google Analytics