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

要注意的问题

  1. 在有的版本的A+B问题中,虽然输入的A和B都在整数的范围之内,结果A+B的值不一定也在这个范围。这时候就要使用数值范围更广的数据类型。以至于使用高精度算法。
  2. 这个题库可能会使用特殊的输入输出方法(例如文件输入),也可能要求提交的时候加入一些附加信息,如果没在这个题库做过题目也没有看帮助,或者以前完全没有使用文件的经验,这可能出错。
  3. 另外对于一些不自带数字输入输出功能的语言(例如Brainfuck),自己写数字输入输出可能也是比较困难的地方。

扩展

而这道题目的扩展通常是加入数据范围之类的陷阱,如高精度加法、不使用十进制的其中一個夾帶數字如:「AA123BB」等。

参考文献

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

参见

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.