算法题:拆分数字

题目:“比如99 可以拆分为 9和9  9*9=81  81可以拆分为8和1  8*1=8 不能拆分了,得出结果为2。
65可以拆分为6和5,6*5=30 ,30可以拆分为3和0, 3*0=0 不能拆分了,得出结果也为2。实现这个功能 返回结果(结果为可拆分的次数)”

分析:1.拆分终止条件是最终的结果是小于10的一位数。

           2.数在拆分时,例如n=999,我们可以利用999%10来获得个位上的数字n1=9,利用999/10使999去掉个位上的9,此时n=999/10=99,在用一个变量r来计算被拆分的数字,r的初始值为1,当999去掉个位数字9时,n变成n=99,r=r*n1=1*9=9,因为一次拆分的终止条件是n<=0,因此n要重复上述过程,因此需要一个循环,循环执行的条件是n>0.

        

          3.上述2是数字的一次拆分所得的结果为x=9*9*9=729,因此还要重复2说是的步骤因此还需要一个循环,该循环的终止条件是x<10.

完整代码如图:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值