题解 | #OJ在线编程常见输入输出练习场--A+B(7)#c++/python3/java

A+B(7)

https://ac.nowcoder.com/acm/contest/5657/G

链接:https://ac.nowcoder.com/acm/contest/5657/G
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
计算一系列数的和
打开以下链接可以查看正确的代码
https://ac.nowcoder.com/acm/contest/5657#question

输入描述:
输入数据有多组, 每行表示一组输入数据。

每行不定有n个整数,空格隔开。(1 <= n <= 100)。
输出描述:
每组数据输出求和的结果
示例1
输入
复制
1 2 3
4 5
0 0 0 0 0
输出
复制
6
9
0

1.c++

(1)getline(cin, string)

借助stringstream
#include <bits/stdc++.h>
using namespace std;

int main()
{
    string line;
    while (getline(cin, line))
    {
        stringstream ss;
        ss << line;
        int cur_sum = 0;
        int x;
        while (ss >> x)
            cur_sum += x;
        cout << cur_sum << endl;
    }
    return 0;
}

稍微优化一下

#include <iostream>
#include <cstring>
#include <algorithm>
#include <sstream>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    string line;
    while (getline(cin, line))
    {
        stringstream ss;
        ss << line;
        int cur_sum = 0;
        int x;
        while (ss >> x)
            cur_sum += x;
        cout << cur_sum << endl;
    }
    return 0;
}

(2)每次cin>>,判断下一位是不是换行符 cin.get() == '\n'

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int cur_sum = 0;
    int x;
    while (cin >> x)
    {
        cur_sum += x;
        if (cin.get() == '\n')
        {
            cout << cur_sum << endl;
            cur_sum = 0;
        }
    }

    return 0;
}

稍微优化一下

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int cur_sum = 0;
    int x;
    while (cin >> x)
    {
        cur_sum += x;
        if (cin.get() == '\n')
        {
            cout << cur_sum << endl;
            cur_sum = 0;
        }
    }

    return 0;
}

2.python3 [int(x) for x in input().split()]

while True:
    try:
        nums = [int(x) for x in input().split()]
        print(sum(nums))
    except:
        break

3.java scan.hasNextLine() scan.nextLine().split(" ")

import java.util.* ;

public class Main
{
    public static void main(String args[])
    {
        Scanner scan = new Scanner(System.in);

        while (scan.hasNextLine())
        {
            String [] nums = scan.nextLine().split(" ");

            int cur_sum = 0;
            for (String x : nums)
                cur_sum += Integer.parseInt(x);

            System.out.println(cur_sum);
        }

    }
}
全部评论
c呢?
点赞 回复 分享
发布于 01-27 16:32 吉林

相关推荐

03-26 22:55
门头沟学院 Java
烤冷面在迎接:河南byd,应该就是郑大了。不过24届计算机是特殊情况,那年除了九✌和强2,以及两三个关系够硬的双非,其他的都是炮灰,感觉是十几年来互联网行业最烂的一年,如果想了解最新的就业情况,得找现在的大四。
点赞 评论 收藏
分享
03-19 10:07
已编辑
广东药科大学 golang
Yki_:你倒是进一个面啊
点赞 评论 收藏
分享
评论
32
2
分享

创作者周榜

更多
牛客网
牛客企业服务