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;
}
时间复杂度: 对每个数进行数位上的遍历,时间复杂度约是。
空间复杂度: 不需要什么额外空间