华为机试题输入输出总结

华为机试题采用的是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

经验分享 程序员 微信小程序 职场和发展