Bootstrap

【ACM模式】牛客网ACM机试模式Python&Java&C++主流语言OJ输入输出案例代码总结

前言

前天做最后一批华为软件机试时,因为完全不清楚这种所谓的ACM模式,刚看到的时候就傻眼了,即使已经看到了这种区别,但是也没有充分的提前准备好应对,因此光输入输出都卡了好久,最后也有自己的原因基本等于交了白卷。

看网上评论说大家都会有这个问题,因此也算是正常。自己也要从哪里跌倒就从哪里爬起来,把这个难点给克服了,不然以后遇到同样的机试还是干瞪眼。

学习的过程顺便留下记录,以便日后翻阅。

题目链接:OJ在线编程常见输入输出练习场

提交记录 :ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛

分别采用Python3.9和Java1.8来解决,前者因为确实代码简单易懂,后者只是因为近期刷题都是Java,刷完剑指offer后应对机试也考虑主要用python,能免掉很多问题。

Python代码部分参考了B站up主以鹅爱折腾牛客网笔试不会数据导入??看这个视频就够了(1) ,感兴趣的同学也可以去学习。

目录

a+b的和

A. 多组空格分隔的两个正整数

A题提交记录

输入描述:
输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。
输出描述:
输出a+b的结果
输入例子1:
1 5
10 20
输出例子1:
6
30
Python
while True:
    try:
        num = list(map(int,input().split(" ")))
        print(sum(num)) 
    except:
        break
Java
import java.util.Scanner;
public class Main {
   
    public static void main(String[] args) {
   
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
    // 注意 while 处理多个 case
            int a = in.nextInt();
            int b = in.nextInt();
            System.out.println(a + b);
        }
    }
}
C++
#include <iostream>
using namespace std;

int main() {
   
    int a, b;
    while (cin >> a >> b) {
    // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld")
        cout << a + b << endl;
   }
}

B.第一行组数接空格分隔的两个正整数

B题提交记录

输入描述:
输入第一行包括一个数据组数t(1 <= t <= 100)
接下来每行包括两个正整数a,b(1 <= a, b <= 10^9)
输出描述:
输出a+b的结果
输入例子1:
2
1 5
10 20
输出例子1:
6
30
Python
t = int(input())
for i in range(t):
    num = list(map(int,input().split(" ")))
    print(sum(num))
Java
import java.util.Scanner;
public class Main {
   
    public static void main(String[] args) {
   
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();
        for(int i = 0; i < num; i++) {
    // 注意 while 处理多个 case
            int a = in.nextInt();
            int b = in.nextInt();
            System.out.println(a + b);
        }
    }
}
C++
#include<iostream>
using namespace std;

int main() {
   
    int a, b, c;
    cin >> a;
    while(cin >> b >> c) {
   
        cout << b + c << endl;
    }
}

C.空格分隔的两个正整数为0 0 结束

C题提交记录

输入描述:
输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入
输出描述:
输出a+b的结果
输入例子1:
1 5
10 20
0 0
输出例子1:
6
30
Python
while True:
    try:
        num = list(map(int,input().split(" ")))
        if num[0] == num[1] == 0:
            break
        print(sum(num)) 
    except:
        break
Java
import java.util.Scanner;
public class Main {
   
    public static void main(String[] args) {
   
        Scanner in = new Scanner(System.in);
        
        while (in.hasNextInt()) {
    // 注意 while 处理多个 case
            int a = in.nextInt();
            int b = in.nextInt();
            if(a ==0 && b == 0) break;
            System.out.println(a + b);
        }
    }
}
C++
#include<iostream>
using namespace std;

int main() {
   
    int a, b;
    while(cin >> a >> b
;