PAT乙级题:python1091 N-自守数(15分)

1091 N-自守数 (15分)
PAT乙级题:python1091 N-自守数(15分)_第1张图片

输入样例:

3
92 5 233

输出样例:

3 25392
1 25
No
M = int(input())
K = list(map(int,input().split(" "))) #这个列表用来存放M个待检测的数字
# 题目保证N < 10
for i in range(M):
    for j in range(10):
        n = len(str(K[i])) #用来统计K到底是几位数字 ,而且这个过程并不会影响list元素的属性
        if (j*(K[i]**2)-K[i]) % (10**n) == 0:#如果K是两位数字,且其是一个什么自守数,那么减去他自身应该能够被100(10^2)整除
            print(j,j*(K[i]**2),sep = " ")
            break
    else:
        print('No')

思路,K有几位,那么减去这个K应该能整除一个东西,比如K是两位数字,减去K之后NK^2应该就是一个100的整数。

还有就是break和这个else的使用,可以参考博客[1] ,注意不要把else放在内循环,否则会出现错误。
PAT乙级题:python1091 N-自守数(15分)_第2张图片

references:
[1] https://blog.csdn.net/weixin_43731183/article/details/88017592

你可能感兴趣的:(python)