您的位置:首页 > 其它

ACM之杭电——1000_A + B Problem

2015-08-06 14:03 357 查看

http://acm.hdu.edu.cn/showproblem.php?pid=1000

A + B Problem

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 487557    Accepted Submission(s): 154501

[align=left]Problem Description[/align]
Calculate A + B.

 

[align=left]Input[/align]
Each line will contain two integers
A and B. Process to end of file.

 

[align=left]Output[/align]
For each case, output
A + B in one line.

 

[align=left]Sample Input[/align]

1 1

 

[align=left]Sample Output[/align]

2

解释:

此题要你输入两个数,然后计算这两个数的结果。但是却没有说要你输入几次两个数,换句话说,就是多次输入,多次计算。如果你的程序执行一次计算就终止了,那么你的程序需要改动。

通俗的说,就是

1 1

2

1 2

3

懂了吗?????

这就不同于其他ACM平台的a+b问题了

C语言

#include <stdio.h>

#include <stdlib.h>

int main()

{

    int a,b;

    while(scanf("%d%d",&a,&b)!=EOF){

    printf("%d\n",a+b);

    }

    return 0;

}

解释一点:

注意这里的EOF用法:
通俗的讲就是,

“我还没有输入完呢,你慌什么!。。。。。。”

其实,百度百科上是由明确的定义的:
计算机术语,缩写通常为EOF(End Of File),
在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。

后期会详细解释。

C++语言

#include <iostream>

using namespace std;

int main(){
int a, b;
while(cin>>a>>b){

cout<<a+b<<endl;

}

return 0;

}

解释一点:
这里用到了while语句,只要有输入,即可。

JAVA语言

import java.util.Scanner;

public class Main{

    public static void main(String[] args) {

        Scanner  sc = new Scanner(System.in);

        while (sc.hasNext()) {

            System.out.println(sc.nextInt()+sc.nextInt());

        }

    }

}

解释一点:
这里主要说明一下scanner:
在Java API中:
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。 
Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。
然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。 

对于hasNext:
public boolean hasNext()如果此扫描器的输入中有另一个标记,则返回 true。在等待要扫描的输入时,此方法可能阻塞。扫描器将不执行任何输入。 

指定者:
接口 Iterator<String> 中的 hasNext
返回:
当且仅当此扫描器有另一个标记时才返回 true 
抛出: 
IllegalStateException - 如果此扫描器已关闭
另请参见:
Iterator

在后期,会有更详细的解释,在这里只需要这么多就行了。你也可以通俗的理解为:多次输入均有效(只作参考)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: