这么写就对了,每次对比完之后,都应该把s重新置为0:
n = int(input())
s = 0
for i in range(10 ** (n - 1), 10 ** n):
for j in range(n):
s += (i % (10 ** (n - j)) // (10 ** (n - j - 1))) ** n
if s == i:
print(i)
s = 0
建议转换成 str 直接操作,会方便很多
for j in str(i):
s += int(j) ** n
1、求50以内能被7整除,但不能同时被5整除的所有整数。
2、如果一个3位数的各位数字的立方和等于该数自身,则该数称为“水仙花数”。 例如,153 = 13 + 53 + 33,所以153是一个水仙花数。
求100~1000以内所有“水仙花数”。
3、设有一份某地连续10年内6月1日的气温记录,其数据为(0C):31、30、33、31、28、32、29、33、35、31,
试计算其平均气温。
4、 鸡兔同笼问题。鸡和兔在一个笼子里,从上面数,有35个头; 从下面数,有94只脚。
问笼中鸡和兔各有多少只?
5、百钱买百鸡问题。公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,
如何买?
6、
7、计算n!函数
8、从键盘输入参数n,计算斐波那契数列中第一个大于n的项。
斐波那契数列为:1,1,2,3,5,8,13,......。即从第3项开始,每一项是前二项之和。
9、模拟发微信红包