2019年5月28日 第一次练习(7整数反转)

这篇博客介绍了如何使用C/C++实现整数反转,从最初的栈思想到利用数学方法。作者首先提出将数字转为字符并使用栈操作,然后探讨了使用`find_first_not_of`和`reverse`函数简化问题,最后提到了官方的数学解法及其解释。
摘要由CSDN通过智能技术生成

第一次练习

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值