OJ在线编程常见输入输出练习(C++和Python版)

1.

计算a+b

输入描述:

输入包括两个正整数a,b(1 <= a, b <= 1000),输入数据包括多组。

输出描述:

输出a+b的结果

示例1

输入例子:

1 5
10 20

输出例子:

6
30

C++:

#include <iostream>
using namespace std;

int main() {
    int a, b;
    while (cin >> a >> b) { // 注意 while 处理多个 case
        cout << a + b << endl;
    }
}
// 64 位输出请用 printf("%lld")

Python:

import sys

for line in sys.stdin:
    a=line.split()
    print(int(a[0])+int(a[1]))

2.

输入描述:

输入第一行包括一个数据组数t(1 <= t <= 100)
接下来每行包括两个正整数a,b(1 <= a, b <= 1000)

输出描述:

输出a+b的结果

示例1

输入例子:

2
1 5
10 20

输出例子:

6
30

C++:

#include <iostream>
using namespace std;

int main() {
    int n, a, b;
    cin >> n;
    while(n--){
        while (cin >> a >> b) { // 注意 while 处理多个 case
            cout << a + b << endl;
        }
    } 
}
// 64 位输出请用 printf("%lld")

Python:

n = int(input())
while n:
    n -= 1
    line = input()
    a = line.split()
    print(int(a[0]) + int(a[1]))

3.

输入描述:

输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入

输出描述:

输出a+b的结果

示例1

输入例子:

1 5
10 20
0 0

输出例子:

6
30

 C++:

#include <iostream>
using namespace std;

int main() {
    int a, b;
    while (cin >> a >> b) { // 注意 while 处理多个 case
        if (a==0 && b==0) break;
        cout << a + b << endl;
    }
}
// 64 位输出请用 printf("%lld")

Python:

while 1:
    line = input()
    a = line.split()
    if a[0]=='0' and a[1]=='0': 
        break
    else:
        print(int(a[0]) + int(a[1]))

4.

输入描述:

输入数据包括多组。
每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。
接下来n个正整数,即需要求和的每个正整数。

输出描述:

每组数据输出求和的结果

示例1

输入例子:

4 1 2 3 4
5 1 2 3 4 5
0

输出例子:

10
15

C++:

#include <iostream>
using namespace std;

int main() {
    int n, a, b;
    while (cin >> n) { // 注意 while 处理多个 case
        int k, ans = 0;
        if (n != 0) {
            for (int i = 0; i < n; i++) {
                cin >> k;
                ans += k;
            }
        } else break;
        cout << ans << endl;
    }
}

Python:

while 1:
    line = input()
    a = line.split()
    ans = 0
    if a[0]!='0':
        for i in a[1:]:
            ans+=int(i)
    else:
        break
    print(ans)

5.

输入描述:

输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。
接下来t行, 每行一组数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。

输出描述:

每组数据输出求和的结果

示例1

输入例子:

2
4 1 2 3 4
5 1 2 3 4 5

输出例子:

10
15

 C++:

#include <iostream>
using namespace std;

int main() {
    int n, t, a, b;
    cin >> n;
    while (n--) {
        cin >> t;
        int k, ans=0;
        for(int i=0;i<t;i++){
            cin >> k;
            ans+=k;
        }
        cout << ans << endl;
    }
}

Python:

time=int(input())
while time:
    time-=1
    line = input()
    a = line.split()
    ans = 0
    if a[0]!='0':
        for i in a[1:]:
            ans+=int(i)
    else:
        break
    print(ans)

6.

输入描述:

输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。

输出描述:

每组数据输出求和的结果

示例1

输入例子:

4 1 2 3 4
5 1 2 3 4 5

输出例子:

10
15

 C++:

#include <iostream>
using namespace std;

int main() {
    int n, a, b;
    while (cin >> n) { // 注意 while 处理多个 case
        int k, ans = 0;
        if (n != 0)
            for (int i = 0; i < n; i++) {
                cin >> k;
                ans += k;
            }
        cout << ans << endl;
    }
}

Python:

import sys

for line in sys.stdin:
    a = line.split()
    ans = 0
    for i in a[1:]:
        ans += int(i)
    print(ans)

7.

输入描述:

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

每行不定有n个整数,空格隔开。(1 <= n <= 100)。

输出描述:

每组数据输出求和的结果

示例1

输入例子:

1 2 3
4 5
0 0 0 0 0

输出例子:

6
9
0

C++:

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

int main() {
    int tmp, sum = 0,ele = 0;
    while (cin >> ele) {
        sum += ele;
        if (cin.get() == '\n') {
            cout << sum << endl;
            sum = 0;
        }
    }
    return 0;
}


//#include<bits/stdc++.h>
//using namespace std;
//
//int main(){
//    string s;
//    while(getline(cin,s)){
//        stringstream ss(s);
//        string num;
//        int sum=0;
//        while(getline(ss,num,' ')){
//            sum+=stoi(num);
//        }
//        cout<<sum<<endl;
//    }
//    return 0;
//}

 c++ stringstream ss(): https://blog.csdn.net/wesigj/article/details/108959219 

Python:

import sys

for line in sys.stdin:
    ans = 0
    a = line.split()
    for i in a:
        ans+=int(i)
    print(ans)

8.

输入描述:

输入有两行,第一行n

第二行是n个字符串,字符串之间用空格隔开

输出描述:

输出一行排序后的字符串,空格隔开,无结尾空格

示例1

输入例子:

5
c d a bb e

输出例子:

a bb c d e

 C++:

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

int main() {
    vector<string> vec;
    int n;
    cin >> n;
    while (n--) {
        string s;
        cin >> s;
        vec.push_back(s);
    }
    sort(vec.begin(), vec.end());
    for (int i = 0; i < vec.size(); i++) {
        cout << vec[i] << ' ';
    }

    return 0;
}

sort函数降序:sort(vec.rbegin(), vec.rend())

Python:

n = int(input())
strs = [x for x in input().split()]
print(' '.join(sorted(strs)))

 函数sorted: sorted(iterable, cmp=None, key=None, reverse=False)

  • iterable -- 可迭代对象。
  • cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

 

9.

输入描述:

多个测试用例,每个测试用例一行。

每行通过空格隔开,有n个字符,n<100

输出描述:

对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开

示例1

输入例子:

a c bb
f dddd
nowcoder

输出例子:

a bb c
dddd f
nowcoder

 C++:

#include <iostream>
#include <sstream>
#include<vector>
#include<algorithm>
using namespace std;

int main() {
    vector<string> vec;
    string s;
    while(cin>>s){
        vec.push_back(s);
        if (cin.get()=='\n'){   //回车代表已经输入了一行
            sort(vec.begin(),vec.end());
            for (auto vs:vec){
                cout << vs << ' ';
            }
            cout<<endl;
            vec.clear();
        }
    }
}
// 64 位输出请用 printf("%lld")

Python:

while True:
    try:
        s=input().split()
        s.sort()
        print(' '.join(s))
    except:
        break

10.

输入描述:

多个测试用例,每个测试用例一行。
每行通过,隔开,有n个字符,n<100

输出描述:

对于每组用例输出一行排序后的字符串,用','隔开,无结尾空格

示例1

输入例子:

a,c,bb
f,dddd
nowcoder

输出例子:

a,bb,c
dddd,f
nowcoder

C++:

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

int main() {
    vector<string> vec;
    string s;
    while(getline(cin,s)){
        int start=0;
        for (int i=0;i<s.size();i++){
            if (s[i]==','){
                string a=s.substr(start,i-start);  //如果这里像下面一样加了1的话,就会连‘,’也放了进来
                vec.push_back(a);
                start=i+1;
            }
            if (i==s.size()-1){
                string a=s.substr(start,i+1-start);
                vec.push_back(a);
            }
        }
        sort(vec.begin(),vec.end());
        for (int j=0;j<vec.size()-1;j++){
            cout << vec[j] << ',';
        }
        cout << vec[vec.size()-1] << endl;
        vec.clear();
    }
}

Python:

while True:
    try:
        s=input().split(',')
        s.sort()
        print(','.join(s))
    except:
        break

11.

数据范围: 0<a,b<2×10^10 

输入描述:

输入有多组测试用例,每组空格隔开两个整数

输出描述:

对于每组数据输出一行两个整数的和

示例1

输入例子:

1 1

输出例子:

2

C++:

#include <iostream>
using namespace std;

int main() {
    long long a, b;
    while (cin >> a >> b) { // 注意 while 处理多个 case
        cout << a + b << endl;
    }
}

 Python:

import sys

for line in sys.stdin:
    a=line.split()
    print(int(a[0])+int(a[1]))

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值