跳转到内容

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;

扩展

有的版本会对命题的条件进行调整,增加或删除某些限制条件,使得以上示例代码无法通过测试,例如:

  1. 在有的版本的A+B问题中,虽然输入的A和B都在整数的范围之内,但A+B的值可能会超出这个范围。这时候就要使用数值范围更广的数据类型,或者使用高精度计算
  2. 有的版本需要使用十进制以外的进位制,或者需要使用字母表示。
  3. 有的问题需要使用特殊的输入输出方法(例如文件输入),也可能要求提交的时候加入一些附加信息,需要仔细阅读测评网站的说明文档要求才能正确通过测试。

参考文献

  1. ^ 北京大学在线评测系统「POJ」中的A+B Problem页面存档备份,存于互联网档案馆

参见