题目描述:
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
方式一:
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
do
{
printf("%d",a%10);
a /= 10;
}
while(a);
return 0;
}
此方式没有将整型转换为字符串,利用除余和商进行移位倒置。例如:105%10 = 5,然后105 /10= 10;10 % 10 = 0;10 / 10 = 1;1%10 = 1,1/10 = 0;因此输入105,输出501。值得注意的是:需要用do while形式,不然输入为0无法输出。
方式二:
利用C++内置的逆序算法(#include <algorithm>):reverse
#include <iostream>
#include<string> // to_string(): 将数字常量转换为字符串
#include<algorithm> // reverse 头文件
using namespace std;
int main()
{
int nums;
cin >> nums;
string str = to_string(nums);
reverse(str.begin(),str.end());
cout << str;
return 0;
}