实现不使用乘、除、取余运算求商和余数及回文数的定义及判断

    我们不妨先复习一下小学二年级学过的除法的定义:被除数/除数=商 ,这是我们在小学时经常用到的算法。现在,我们仔细在想一下,除法的本质到底是什么?我们假设一共有12块糖,分给四个小孩,这时你就会浮现出一种思维:12/4 但我们的前提是不使用该运算,或者说我们借助另外某种运算符间接实现这一运算,它是什么呢?答案是减法。回到分糖问题,除法的本质就是计算12中有多少个4,如果我们能设计一种循环,使其不断的减4,每减一次商加一,当减到最后一次时,该差就为余数。写入代码如图:

05ccf9ae1f7b469f9d75b1ec95bb03a1.png

 

  接下来我们开始判断回文数,“回文”是一个古今中外都常用的手法,指的是正读反读都能读通的句子,比如:“人人为我,我为人人”。回文数的定义也类似的,是指正读反读都一样的数字,例如:“121”等。

  那么我们到底该怎么判断呢?其实很简单,我们是否只需要把我们在脑海里将数“倒”过来的过程,用java语言表示。数123倒过来变成321,是将个位变成百位,十位不变,百位变成个位。也就是说,我们只需一个数一个数的向前进行读取,读到该数就将其去掉,使得下次读取时仍然保持对个位的读取。举个例子,123,读取时123%10取个位3,在用123/10变成12,再%10取得2,接着在/10变成1,在%10得1,至此我们得到所以数字,我们可以这样写入算法,打印如图:

fbb0159a5e414132b445bd8e7b064e9a.png

a121846aa7e54210affab2baa7b39d7c.png

  希望大家能够指出和进一步优化算法,共同进步!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值