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的值可能会超出这个范围。这时候就要使用数值范围更广的数据类型,或者使用高精度计算。
- 有的版本需要使用十进制以外的进位制,或者需要使用字母表示。
- 有的问题需要使用特殊的输入输出方法(例如文件输入),也可能要求提交的时候加入一些附加信息,需要仔细阅读测评网站的说明文档要求才能正确通过测试。
参考文献
- ^ 北京大学在线评测系统「POJ」中的A+B Problem (页面存档备份,存于互联网档案馆)
参见
- Hello World,跟A+B问题相比,它只考察了字符串输出,而不存在变量的输入输出。