python两种方法求1到100之间每位数的乘积大于每位数的和的数

文章介绍了两种方法来找出1到100之间满足位数之和大于位数之积的数:一种是人为判断10-99区间的数,另一种是通过外层和内层循环遍历数的每位。详细解释了如何提取个位和十位数字并进行计算。
摘要由CSDN通过智能技术生成
方法一:人为判断,可以得出要求的数都是两位数。题目要求的是1到100之间,可以人为先确定范围,1到9之间的数不满足题意,100这个三位数也不满足题意。满足题意的是10-99这个区间的数。
for i in range(10,100):
    gewei=i%10
    shiwei=i//10
    if gewei*shiwei > gewei+shiwei:
        print(i,end=' ')
方法二:外层循环遍历1--100,内层循环遍历数中的每一位。这个方法更为适用于一般情况,特别是你无法确定数的位数的时候。

取出数的每一位基本思路是:

①取出任意一个数的个位数的方法都是固定的。即n%10

②每当取出个位数之后,每个数再整数10,让十位变成个位,再进行n%10

③循环进行②这个步骤,直到所求的数为0为止

for n in range(1,101):
    s=0     #题意所要求的各位数之和
    k=1     #题意所要求的各位数之积
    m=n     #用另一个变量存储n
    while m>0:
        
        s+=m%10
        k*=m%10
        m//=10
    if k>s:
        print(n,end=' ')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值