第一次练习
7.整数反转
自己的想法
题目要求把一个32位 有符号 数进行反转。
首先我考虑的是利用栈的思想
但应该把数字转变成字符形式,一个个入栈然后再出栈。
要注意负数和末尾是0的数
但作为一个菜鸟,
1.怎么把数字形式转变为字符形式?
2.怎么用语言进行栈的实现?
首先按照自己的思路解决以上两个问题:
1.将数字转换为字符形式:
to_string()方法 但是要#include<string’>方法
实现:
int reverse(int x){
string str_x=to_string(x);
}
2.利用栈的思想进行反转
int n=str_x.size();
const char * ss=str_x.c_str();//将字符串类型转化为字符型,方便入栈操作
std::stack <char> text;//建立栈
int i=0;
while(n--){
text.push(ss[i++]);
}//将字符一一入栈
while(!text.empty()){
char c=text.top();
str_x+=c;
text.pop();
}出栈,并将字符加入到原来字符串后面
stringstream out(str_x);//转换为字符流,为转换成整数操作作准备
out >>long_x;//将string转换成long存储在long_x中//转化成整数
if(long_x>INT_MAX || lo