资讯专栏INFORMATION COLUMN

Day 4:Persistent Bugger

liujs / 2898人阅读

Details:
Write a function, persistence, that takes in a positive parameter num and returns its multiplicative persistence, which is the number of times you must multiply the digits in num until you reach a single digit.

For example:
 persistence(39) => 3  # Because 3*9 = 27, 2*7 = 14, 1*4=4
                       # and 4 has only one digit.
 persistence(999) => 4 # Because 9*9*9 = 729, 7*2*9 = 126,
                       # 1*2*6 = 12, and finally 1*2 = 2.
 persistence(4) => 0   # Because 4 is already a one-digit number.
My Solution:
def persistence(n):
    times = 0
    if n < 10:
        return times
        
    while True:
        times += 1
        r = 1
        while n > 0:
            r *= n % 10
            n /= 10

        if r < 10:
            return times
        else:
            n = r
Best Practice:
def persistence(n):
    i = 0
    while n>=10:
        n = reduce(lambda x,y:x*y, [int(x) for x in str(n)])
        i += 1
    return i
Tips:
1. 对一组数连续作用某个函数用reduce方法。
2. 把字符串转换成数字list用[int(x) for x in str(n)])

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41658.html

相关文章

  • react 基础之组件篇——设计复合组件

    摘要:提醒设计组件时,一般都按照把控大局,再设计好每个小组件的规律。本节内容完毕下节内容基础之组件篇三将讲解设计复合组件。 设计复合组件 showImg(https://segmentfault.com/img/remote/1460000015798841); 前言 你问我为什么写博客? 因为阿拉斯加爱写bugger!!! 微信公众号:爱写bugger的阿拉斯加如有问题或建议,请往公众号,...

    MarvinZhang 评论0 收藏0
  • WebKit 技术内幕之浏览器与WebKit内核

    摘要:微信公众号爱写的阿拉斯加如有问题或建议,请后台留言,我会尽力解决你的问题。而技术内幕是基于的项目的讲解。有兴趣的朋友可以扫下方二维码公众号爱写的阿拉斯加分享开发相关的技术文章,热点资源,全栈程序员的成长之路和大家一起交流成长。 微信公众号:爱写bugger的阿拉斯加如有问题或建议,请后台留言,我会尽力解决你的问题。 前言 此文章是我最近在看的【WebKit 技术内幕】一书的一些理解和做...

    jindong 评论0 收藏0
  • 浏览器之 javaScript 引擎

    摘要:书接上文浏览器之硬件加速机制本章主要讲解中广泛使用的引擎和引擎。解释器在某些引擎中,解释器主要是接收字节码,解释执行这个字节码,同时也依赖垃圾回收机制等。 showImg(https://segmentfault.com/img/remote/1460000016359609); 微信公众号:爱写bugger的阿拉斯加如有问题或建议,请后台留言,我会尽力解决你的问题。 前言 此文章是我...

    booster 评论0 收藏0
  • 浏览器之硬件加速机制

    摘要:书接上文浏览器内核之渲染基础硬件加速基础概念硬件加速技术是指使用的硬件能力为帮助渲染网页,在为的作用主要是用来绘制图形并且性能特别好。包含的节点表示的是使用硬件加速的元素或者技术。 showImg(https://segmentfault.com/img/remote/1460000016348971); 微信公众号:爱写bugger的阿拉斯加如有问题或建议,请后台留言,我会尽力解决你...

    mengera88 评论0 收藏0
  • 浏览器内核之WebKit 架构与模块

    摘要:多线程的主要目的就是为了保持用户界面的高响应度,保证线程进程中的主线程不会被任何其他费用时的操作阻碍从而影响了对用户操作的响应。 showImg(https://segmentfault.com/img/remote/1460000016113034); 微信公众号:爱写bugger的阿拉斯加如有问题或建议,请后台留言,我会尽力解决你的问题。 前言 此文章是我最近在看的【WebKit ...

    The question 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<