4.24 数软杯
链接: link.
1.高精度加法
题干
链接: link.
Simple A + B Problem
Description
请计算两个整数的和并输出结果。
注意不要有不必要的输出,比如"请输入 a 和 b 的值: ",示例代码见隐藏部分。
Input
两个用空格分开的整数.
Output
两数之和
Sample Input 1
1 1
Sample Output 1
2
代码
#include<iostream>
#include<vector>
using namespace std;
vector <int> add(vector <int> &A,vector <int> &B)
{
vector <int > C;
int t = 0;
for( int i = 0;i < A.size() || i < B.size();i ++)
{
if(i < A.size()) t += A[i];
if(i < B.size()) t += B[i];
C.push_back(t % 10);
t /= 10;
}
if(t) C.push_back(1);
return C;
}
int main()
{
string a,b;
vector<int> A, B;
cin >> a >> b;//123456
for(int i = a.size() - 1;i >= 0;i -- )
A.push_back(a[i] - '0');//654321 倒叙读入
for(int i = b.size() - 1;i >= 0;i -- )
B.push_back(b[i] - '0');
auto C = add(A , B);
for(int i = C.size() - 1;i >=0;i -- )
printf("%d",C[i]);//倒叙输出,就变成正序了,负负得正
return 0;
}
- 没学明白,得把这个模板背过
4.sort函数
题干
GZS送温暖
Description
众所周知,GZS是一个总是考第一的大学霸,为什么呢?因为GZS喜欢思考!(逃…
当然,GZS也有不愿意动脑的时候,给你N个正整数(可以重复),GZS希望让你告诉他这些正整数里面第K小的数是多少。简单吗,ACCEPT it!
Input
第一行为一个整数N ( N <= 100000) 代表整数个数;第二行为N个整数,并且每个正整数的值都不大于10^6;第三行为一个整数K ( K <= N );
Output
输出一行,包含一个整数。这个整数就是这个序列里面排第K小的数。
Sample Input 1
5
1 2 2 4 5
3
Sample Output 1
2