【Python CheckiO 题解】Digits Multiplication


CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。

CheckiO 官网:https://checkio.org/

我的 CheckiO 主页:https://py.checkio.org/user/TRHX/

CheckiO 题解系列专栏:https://itrhx.blog.csdn.net/category_9536424.html

CheckiO 所有题解源代码:https://github.com/TRHX/Python-CheckiO-Exercise


题目描述

【Digits Multiplication】:给你一个正整数,请你写一个函数来实现:将正整数的每一位(不包括0)相乘,例如:给你 123405, 你应该这样处理 1*2*3*4*5=120(别忘了把0丢掉)。

【链接】https://py.checkio.org/mission/digits-multiplication/

【输入】:一个正整数

【输出】:正整数的每一位相乘后的结果

【范例】

checkio(123405) == 120
checkio(999) == 729
checkio(1000) == 1
checkio(1111) == 1

解题思路

先将给的整数转换成字符串形式,循环访问该字符串,如果值不为 0,就将该字符转化成整型,然后依次相乘即可。

代码实现

def checkio(number: int) -> int:
    num = 1
    for i in str(number):
        if i != '0':
            num *= int(i)
    return num


if __name__ == '__main__':
    print('Example:')
    print(checkio(123405))
    
    # These "asserts" using only for self-checking and not necessary for auto-testing
    assert checkio(123405) == 120
    assert checkio(999) == 729
    assert checkio(1000) == 1
    assert checkio(1111) == 1
    print("Coding complete? Click 'Check' to review your tests and earn cool rewards!")

大神解答

大神解答 NO.1
def checkio(number: int) -> int:
    if 0 < number < 10 ** 6:
        result = 1
        for n in str(number): 
            if n != '0':
                result = result * int(n)
    return result
大神解答 NO.2
from functools import reduce

def checkio(number: int) -> int:
    return reduce(lambda x,y: x*y, [int(i) for i in str(number).replace('0','')])
大神解答 NO.3
def checkio(number: int) -> int:
    r = 1
    while number:
        number, n = divmod(number, 10)
        if n: r *= n
    return r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT.BOB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值