190919 python水仙花数

# 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,# 其各位数字立方和等于该数本身。例如:153是一个"水仙花数",# 因为153=1的三次方+5的三次方+3的三次方。方法一:先设定百位、十位、各位都是0~9中的一个数字,再利用循环查找的方法计算:

1 for a in range(10):
2     for b in range(10):
3         for c in range(10):
4             n = a * 100 + b * 10 + c
5             if n == a**3+b**3+c**3:
6                 if n!=0 and n!=1:
7                     print(n)

方法二:利用取商和取余数的方法。a//b取商,a%b取余

1 for i in range(100,1000):
2       a = i//100
3       b = (i%100)//10
4       c = (i%100)%10
5       if a**3 + b**3 + c**3 == i :
6           print(i)

原文地址:https://www.cnblogs.com/jakye/p/11614929.html

时间: 2024-08-30 17:56:04

190919 python水仙花数的相关文章

Python练习题 009:水仙花数

[Python练习题 009] 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方. ---------------------------------------------------------------------- 这题也是送分题,只要能把任意三位数的百位.十位.个位拆解出来就好办了.思路:将任意3位数除以100再向下取整,即可得到百位数.将这个3位数减去(百位数*10

Python实现水仙花数

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)<摘自百度百科>. 下面给出三位数水仙花Python代码实现:: # 循环遍历出所有三位数 for tmp in range(100, 1

Python基础练习-003-求100-999之间所有的水仙花数

水仙花数是指一个n位的正整数(n>=3),它的每个数字的n次幂之和等于它本身.例如:153=1*1*1+5*5*5+3*3*3,153为三位数,它的每个数字的三次方之和等于153.用python语言实现求出100~999之间的所有水仙花数. 分析过程:将正整数n的个位十位百位分别取出,再求幂之和:个位百位比较好拆分,十位的话可以先减去百位再用除法计算. 1 # -*- coding:utf-8 -*- 2 # @Author : 飘飘_emmm 3 print("100-999之间的水仙花

用python语言来判断一个数是否是水仙花数?

#用python语言来判断一个数是否是水仙花数? #水仙花数: # 1) 一个三位正整数 ( 即取值区间 [100,1000) ) # 2) 个位数字的立方+十位数字的立方+百位数字的立方=它本身  (即数字 abc = a**3 + b**3 + c**3) 代码: for a in range(1,10):    #定义百位数取值区间 (1,9)     for b in range(10):    #定义十位数取值区间 (0,9)         for c in range(10):  

python练习——水仙花数

题目: 请判断一个数是不是水仙花数.其中水仙花数定义各个位数立方和等于它本身的三位数.输入有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000)输入0表示程序输入结束.输出如果n是水仙花数就输出Yes否则输出No样例输入1531540样例输出YesNo 1 class Shui: 2 3 def __init__(self,str): 4 self.str=str 5 6 def carculate(self): 7 n=len(self.str) 8 sum = 0 9 fo

python 打印所有的水仙花数

目标分析: #水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身. 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 利用for循环控制100-999个数,每个数分解出个位,十位,百位. 一.参考解法: 1 for a in range(1,10): 2 for b in range(0,10): 3 for c in range(0,10): 4 s1= a*100+b*10+c 5 s2= pow(a,3)+pow(

python中3位数中的水仙花数,和5位数中回文数的个数

3位数中的水仙花数打印num=100 e=0while num<1000: b=num%10 c=num//10%10 d=num//100 if b**3+c**3+d**3==num: e+=1 print (num) num+=1print (e) 5位数中的回文数的个数 num=10000e=0while num<=99999: a=num//10000 b=num//1000%10 c=num%100//10 d=num%10 if a==d and b==c: e+=1 print

python 取水仙花数的问题

什么是水仙花数 "水仙花数" 代码 for x in range(100, 1000): # 取个位数 a = x % 10 # 取十位数 b = int(x % 100 / 10) # 取百位数 c = int(x / 100) if a**3 + b**3 + c**3 == x: print(x) 一个小小的测试,重点在怎么取到各位的数字,我竟然想了很久,参考了多个博客-- 为自己的智商感到捉急-- 另外可以参考以下博客的答案: https://blog.csdn.net/xie

打印出三位数的水仙花数Python

水仙花数计算 ???????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????? 1.题目描述 “3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身.例如:ABC是一