关于数字反转题的思考

前几天遇到了一个反转数字的题目,意思是说有两个数啊,如果这两个数的和的反转等于两个数和的反转,例如: 12和34。12的反转是21,34的反转是43,21+43=64,那么就表示反转成功了,刚看到这个的时候我就想啊,这不直接就是用strlen函数判断数组长度,然后一头一尾进行反转,求出反转的值吗,结果我辛辛苦苦敲了4个for循环嘞,把反转前反转后的值全都求出来了,写了差不多有30行的代码,然后这个时候啊,我旁边一个兄弟看了看我的代码,他的眼神仿佛在告诉我这么会有人用这么蠢的算法(开玩笑的),然后我看了看他的,结果当然是震惊wxr一万年,下面就是改完后他的代码在这里插入图片描述
短短的4行,把我用7,8行的代码秒杀了,(而且我还感觉我用那个可能会时间超限,我的源代码就不发了,现在想想当时自己是有多么蠢),可以看下他的代码,跳出while循环的那个b就是翻转后的a,原理如下:(对了,补充一下就是每次用这个while循环的时候b得清0)比如一个数a 135,135取余就是5对吧,那么现在b就是5了,然后再取模,此时a是13;13为true,继续循环,第二次a%10+b*10结果为53了,接着取模a是1;1也为true,继续循环,第三次结果就为531了此时a为0为false跳出循环,在这里插入图片描述

你们可以自己去试一下,原理的话自己去探索一下,这次经历以后,我写代码的时候会考虑到有没有更优算法,呃呃呃呃呃,其实这个也扯不上算法咯,反正就是告诉我写题之前先去思考有没有更优解,要说的就这么多啦,这是我的第一篇博客,希望以后自己可以多写博客,我讲的这个方法大家知道了吗?

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值