2021-04-24 数软杯

这篇博客主要介绍了两种算法:高精度加法和排序。在高精度加法问题中,通过C++代码展示了如何将两个整数相加,避免了不必要的输出。而在排序问题中,给出了找到一个整数序列中第K小元素的解决方案,适用于不超过100000个数且数值不大于10^6的情况。这两部分都提供了示例输入和输出,有助于理解算法的实现过程。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值