HDU 1000 A + B Problem
常被称作是ACMer初学阶段的必经之路
Problem Description
Calculate A + B.
Input
Each line will contain two integers A and B. Process to end of file.
Output
For each case, output A + B in one line.
Sample Input
1 1
Sample Output
2
难度:1星
题目很简单,相信你可以轻易读懂。话不多说,先上代码:
#include <iostream>
using namespace std;
int main()
{
int a=0,b=0;
while(cin>>a>>b)
{
cout<<a+b<<endl;
}
return 0;
}
需要用一点你需要注意的是,在处理数据时可能会遇到多组的情况;因此,在这种情况下必须采用while循环结构进行处理。具体来说,请在存在输入数据时输出相应结果并执行换行操作;处理完毕后请确保执行换行操作;否则可能导致无法通过测试
当采用std::cin与std::cout进行数据输入输出操作时,则必须包含iostream.h头文件并声明/定义为std::的类型。
若要采用C语言中的 scanf 与 printf 函数来进行数据读取与输出,则需包含cstdio.h头文件即可实现相应的功能。其中函数名为 scanf 与 printf 用于完成输入输出操作。
#include <cstdio>
int main()
{
int a=0,b=0;
while(~scanf("%d%d",&a,&b))
{
printf("%d\n",a+b);
}
return 0;
}
当使用 scanf 进行输入操作时,在变量前必须添加 & 符号;否则会导致错误。例如以下代码的功能等价于:
while(scanf("%d %d", &a, &b) != EOF) {
// 处理逻辑
}
因此以下代码同样适用:
while(~scanf("%d %d", &a, &b)) {
// 处理逻辑
}
#include <cstdio>
int main()
{
int a=0,b=0;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d\n",a+b);
}
return 0;
}
特别强调一点:许多新手可能会有这样的想法——认为必须等到全部输入完成后才开始生成相应的内容——但实际上这是不正确的,在编程竞赛系统的运行机制中,并非必须等到所有内容输入完毕后再进行处理就可以满足要求。值得注意的是,在一次性处理时出现的问题并不影响判断标准——也就是说,在线评测系统只关心最终所有结果拼接后的整体效果是否符合预期要求,并不会关注中间状态如何变化或者是否分阶段完成任务的过程是否合理或者顺畅。因此,在实际编程过程中遇到难以一次性完成的情况时——比如某个模块或者函数需要多次迭代完善的情形——可以一边输入一边生成相应的内容——这样既能够保证最终结果符合预期又不会因为操作过程中的中断而影响整体效率或者代码质量
另外,在实际应用中除了我们看到的publicly available sample input以及sample output之外还有很多隐藏的具体案例被系统所保留这些特殊的测试数据主要用于检测程序运行时可能出现的各种潜在问题因此,在正式提交代码之前建议开发者全面评估各种可能性以确保程序的健壮性
