世界上存在着一种神奇的数:水仙花数!水仙花数的每一位的立方的和等于这个数本身!
比如:153,因为1³+5³+3³=153。
编程实现:
给定一个正整数N,判断100到N之间有多少个“水仙花数”。
输入一个正整数N。(100<N<1000)
输出水仙花数的个数。
样例输入:160
样例输出:1
解题:
N = int(input())
print(len([i for i in range(100, N+1) if (i%10)**3 + (i%100//10)**3 + (i%1000//100)**3 == i]))
这道题最难的点就是求这些数每一位上的数是什么,我们用取模(%)和取整(//)来求:%10就是求这些数的个位,%100//10求的就是十位,%1000//100求的是百位。
这道题我是用列表推导式来求的,当然也不止一种解法,比如可以用函数来解决。