逆序输出一个整数是很多朋友编程入门都会遇到的练习,那么如何才能实现呢?其实简单说如何实现代码很简单,但是开发者不要只关注代码实现,也不要忽略解题思路和算法设计思路 。在这里,我用我的知识分享一下这个问题的一些实现方法 。
使用基本运算符取余数 。
假设输入一个整数a=123456,逆序输出是654321;首先,很容易想到用循环来实现 。从最后一位开始,一次向左输出一位 。所以问题是如何让他每次向左输出一位?是的,我们用10进行整数的余数,因为我们用的整数都是小数,所以用10进行余数后,会剩下一位 。用123456进行余数运算的第一个结果是6,那么下一个循环呢?如何让123456变成12345?对,就是这个想法 。我们直接把123456除以10得到12345.6,这是一个浮点数 。我们做什么呢
还记得int的隐式转换吗?2345.6转换成int后,小数点后的那个会丢失,只保留整数 。好了,就用这个功能实现吧 。
转换为字符处理
【c语言逆序输出数字123 如何给数组赋值】以上方法是最基本的方法,很多初学者应该都接触过 。下面的方法是将整数转换成字符串进行处理,并使用一些字符串处理函数 。这可能比之前的方法更有学问 。
1.第一个是反向迭代器 。
2.第二种是字符串截取,从最后一位数字开始,向前截取 。
3.将整数转换为字符数组,并从后向前重复使用该循环 。
由字符数组和堆栈实现
当我们想到逆序的时候,自然会想到stack的数据结构,先进后出 。所以,这个问题虽然没有用到stack这么复杂的技术,但是一个思路 。认识一个问题有很多方法 。寻求最简单快捷的方法,不正是算法开发的魅力所在吗?
这种方法的思路是将整数转换成字符数组,然后将数组一个一个的叠加,最后一个一个的叠加,从而实现逆序输出 。
摘要
对于一个简单的算法问题,我已经给出了上面的解决方法,但是实用、简单、高效肯定是第一位的 。为什么忍不住写后面的方法?其实在我们日常的开发工作中,要实现一个业务需求,不仅要想办法实现,还要想尽可能多的办法,然后用最好的办法解决 。
最后,如果想学习C/C,可以私信小编“01”获取资料,开发工具,听讲座!
推荐阅读
- 怎么防静电最有效 如何除静电
- 微波炉哪个牌子好用质量好,微蒸烤微波炉是怎么回事 微波炉哪个牌子好
- jdk长期支持版本 如何下载jdk
- 生病祝福早日康复的话 有什么祝福早日康复的话
- 微波炉哪个品牌好 微波炉哪个牌子好
- cad块编辑后只显示块部分怎么办 cad如何修改块
- 向往歌词 歌曲向往歌词
- excel表格添加行列 如何插入行
- 我的世界熔炉怎么合成表 我的世界游戏内容简介