华为机试题采用的是ACM模式,需要考生自行编写输入和输出,对于已经习惯了只编写函数体部分的考生来说可能会是个挑战,本人尝试根据自己在刷华为机试题过程中遇到的各种输入输出的case进行梳理,希望能够帮助大家尽快适应华为机试题的输入输出模式,减少在这块的耗时,从而将更多的精力放在解题上。
一 基础篇
首先对与Java的输入,要用Scanner,因此代码起手第一句,一定得先来上这么一段:
Scanner scaner = new Scanner(System.in);
为了方便我们不重新重新启动程序的情况下,可以反复地测试多组测试应用,我们通常会写一个while循环来反复接受输入,那么while循环的条件判断应该怎么写呢?
读取下一个整数/字符/行:
// 判断是否有下一个整数
while(scanner.hasNextInt()){
//...
scanner.nextInt();
}
// 判断是否有下一个字符
while(scanner.hasNext()){
//...
scanner.next();
}
// 判断是否有一整行
scanner.hasNextLine(){
//...
scanner.nextLine();
}
如果采用has xxxx的话,后面也要用next xxxx。比如前面用hasNextLine,那么后面要用 nextLine 来处理输入。
以下是针对各种输入输出条件下举例实现的Java代码:
二 正文篇
1. 多组空格分割的两个整数 &#x