HJ11数字颠倒
一.题目描述
给出一个整数将整个数逆序后以字符串的形式输出
二.算法(使用reverse函数)
首先题目说是输入一个整数但是我们可以利用string读入,那么问题就转变为了将这个函数逆序后输出,可以使用reverse函数将其颠倒后输出。题目很简单,下面直接给出完整代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    cin>>s;
    reverse(s.begin(),s.end());//利用reverse函数对string进行翻转
    cout<<s<<endl;//输出翻转后的字符串
    return 0;
}
时间复杂度: 对n个字符串进行反转,复杂度在
空间复杂度:没有什么额外空间所以复杂度是
三.算法(模拟)
我们可以发现先对这个数取余10可以得到这个数最低位的数,然后对数除以10,就可以消去这个数的最低位,利用这两个性质我们就可以将数逆序输出了,下面是完整代码:
using namespace std;
int main(){
    long long int num;
    cin>>num;
    if(num==0){//这块需要特判 当输入的数是0的时候 直接返回0
        cout<<"0"<<endl;
        return 0;
    }
    while(num){
        cout<<num%10;//输出最低位
        num/=10;//消去最低位
    }
    return 0;
}
时间复杂度: 对每个数进行数位上的遍历,时间复杂度约是。
空间复杂度: 不需要什么额外空间

京公网安备 11010502036488号