跳过正文
ACM输入输出模板
  1. 文章/

ACM输入输出模板

352 字

ACM输入输出模板
#

很多朋友在求职的笔试和面试中,因为对ACM模式的输入输出不熟悉,导致无法完成算法题。输入输出是写算法题的基础,大家可以根据自己的首选语言进行"背诵"。

下面,针对常见的ACM输入与输出,给大家总结了模板写法,包括了C++、Python、Go、Java、JavaScript等主流编程语言。示例代码均为“A+B”问题,题目描述为输入A和B两个数,要求输出A+B。

1.多组数据,每组第一行为n,之后输入n行两个整数
#

练习题:A+B问题I

输入:第一行是一个整数N,表示后面会有N行a和b,通过空格隔开。

C++
#

#include<iostream>   
using namespace std;   
int main() {
    int n, a, b;
    while (cin >> n) {
        while (n--) {
            cin >> a >> b;
            cout << a + b << endl;
        }
    }
}

Python
#

n = int(input())
for _ in range(n):
    a, b = map(int, input().split())
    print(a + b)

Go
#

package main
import "fmt"
func main(){
    var n, a, b int
    for {
        _, err := fmt.Scanf("%d", &n)
        if err != nil {
            break
        }
        for n > 0 {
            _, err := fmt.Scanf("%d %d", &a, &b)
            if err != nil {
                break
            }
            fmt.Println(a + b)
            n --
        }
    }
}

Java
#

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            while (n -- > 0) {
                int a = scanner.nextInt();
                int b = scanner.nextInt();
                System.out.println(a + b);
            }
        }
    }
}

JavaScript
#

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let n, count = 0;
rl.on('line', (input) => {
    if (!n) {
        n = +line;
    } else {
        const [a, b] = line.split(' ').map(Number);
        console.log(a + b)
        if (++ count >= n) rl.close();
    }
})

1.多行输入,每行两个整数
#

练习题:A+B问题II

输入:包含一系列的a和b对,通过空格隔开。一对a和b占一行。

C++
#

#include<iostream>   
using namespace std;   
int main() {
    int a, b;
    while(cin >> a >> b) cout << a + b << endl;
}

Python
#

while True:
    try:
        a, b = map(int, input().split())
        print(a + b)
    except:
        break

Go
#

package main
import "fmt"
func main(){
    var a, b int
    for {
        _, err := fmt.Scanf("%d %d", &a, &b)
        if err != nil {
            break
        }
        fmt.Println(a + b)
    }
}

Java
#

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        while(in.hasNextInt()){
            int a = in.nextInt();
            int b = in.nextInt();
            System.out.println( a + b );
        }   
    }
}

JavaScript
#

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.on('line', (input) => {
    const [a, b] = input.split(' ').map(Number);
    console.log(a + b);
})