一道XX公司程序设计大赛题
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); } }}
?