方法一:人为判断,可以得出要求的数都是两位数。题目要求的是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=' ')