一定要掌握ACM模式!

文摘   科技   2024-12-17 11:31   广东  

很多录友苦于不熟悉 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 == 0break;
        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, 就可以了。

代码随想录
认准代码随想录,学习算法不迷路。 刷题网站:programmercarl.com
 最新文章