很多录友苦于不熟悉 ACM 输入输入结构,在笔试和面试的时候,处理数据输入输出就花费了大量的时间,以至于算法题没写完,甚至是 根本就写不对输入输出的方式。
知识星球里很多录友的日常打卡中,都表示被 ACM模式折磨过:
下面,我针对常见的25种 ACM输入与输出方式,给大家总结了模板写法PDF,包括了C++、Java、Python、Go、JS等主流编程语言。
大家可以拿去直接“背诵”。
每种输入输出,都配套的对应的卡码网(kamacoder.com)练习题。
例如继续输入A+B,遇到 A、B 为0 的时候终止,对应的写法:
练习题:A+B问题III:https://kamacoder.com/problem.php?id=1002
c++:
#include<iostream>
using namespace std;
int main() {
int a, b;
while (cin >> a >> b) {
if (a == 0 && b == 0) break;
cout << a + b << endl;
}
}
Java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int a = scanner.nextInt();
int b = scanner.nextInt();
if (a == 0 && b == 0) {
break;
}
System.out.println(a + b);
}
}
}
Python:
import sys
while True:
s = input().split() # 一行一行读取
a, b = int(s[0]), int(s[1])
if not a and not b: # 遇到 0, 0 则中断
break
print(a + b)
Go:
package main
import "fmt"
func main() {
var a, b int
for {
_, err := fmt.Scan(&a, &b)
if err != nil {
break
}
if a == 0 && b == 0 {
break
}
fmt.Println(a + b)
}
}
JavaScript:
// 引入readline模块来读取标准输入
const readline = require('readline');
// 创建readline接口
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
function preoceeInput() {
rl.on('line', (input) => {
const [a, b] = input.split(' ').map(Number);
// # 遇到 0, 0 则中断
if (a === 0 && b === 0) {
return;
} else {
console.log(a + b);
}
});
}
preoceeInput()
PDF 就是这样的:
领取方式:添加如下企业微信,通过之后就会发你这份PDF。
如果已经有我的企业微信,直接回复:ACM, 就可以了。