A+B问题
A+B问题是一个基础的程序设计问题。通常是信息学在线评测系统用来测试提交和输入输出方法的题目。[1]
一般描述
输入两个数和(一般是在整数范围内),输出的计算结果。
範例程式碼
Java
import java.util.*; public class AB { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a,b; a=sc.nextInt(); b=sc.nextInt(); System.out.println(a+b); } //main end } //AB end
C语言
#include <stdio.h> int main(void) { int a, b; scanf("%d %d", &a, &b); printf("%d\n", a + b); return 0; }
C++
#include <iostream> int main() { int a, b; std::cin >> a >> b; std::cout << a + b << std::endl; return 0; }
或
#include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; cout << a + b << endl; return 0; }
Pascal
var a,b:longint; begin readln(a,b); writeln(a+b) end.
Ruby
gets.strip.split.map(&:to_i).reduce(:+)
Python
适用于 Python 3 :
print(sum(map(int, input().split())))
Fortran
PROGRAM P1000 IMPLICIT NONE INTEGER :: A, B READ(*,*) A, B WRITE(*, "(I0)") A + B END PROGRAM P1000
PHP
<?php $input = trim(file_get_contents("php://stdin")); list($a, $b) = explode(' ', $input); echo $a + $b;
扩展
有的版本会对命题的条件进行调整,增加或删除某些限制条件,使得以上示例代码无法通过测试,例如:
- 在有的版本的A+B问题中,虽然输入的A和B都在整数的范围之内,但A+B的值可能会超出这个范围。这时候就要使用数值范围更广的数据类型,或者使用高精度计算。
- 有的版本需要使用十进制以外的进位制,或者需要使用字母表示。
- 有的问题需要使用特殊的输入输出方法(例如文件输入),也可能要求提交的时候加入一些附加信息,需要仔细阅读测评网站的说明文档要求才能正确通过测试。
参考文献
参见
- Hello World,跟A+B问题相比,它只考察了字符串输出,而不存在变量的输入输出。