Python练习题 009:水仙花数

【Python练习题 009】 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

----------------------------------------------------------------------

这题也是送分题,只要能把任意三位数的百位、十位、个位拆解出来就好办了。思路:将任意3位数除以100再向下取整,即可得到百位数。将这个3位数减去(百位数*100),即可去掉百位数,然后除以10再向下取整,即可得到十位数。将这个3位数除以10再取整再乘以10(得到整几百几十的数字),然后拿这个3位数减去这个数字,即可得到个位数。代码如下:

import math

for i in range(100, 1000):
    x = math.floor(i/100)  #获得百位数
    y = math.floor((i - x*100)/10)  #获得十位数
    z = i - math.floor(i/10) *10  #获得个位数
    if i == x**3 + y**3 + z**3:
        print(i, end=‘, ‘)

输出结果如下:

153, 370, 371, 407

++++++++++++++++++++++++++++++++++++++

题目出处:编程语言入门经典100例【Python版】

时间: 2024-10-13 01:11:41

Python练习题 009:水仙花数的相关文章

python基础----求水仙花数

水仙花数,即一个三位数,各个位上的数字的三次方相加,等于该数本身.如:153 = 1**3 + 5 ** 3 + 3 ** 3 1 def is_narc_num(n): 2 # if n <100 or n > 999: 3 # return False 4 # n = str(n) 5 # if int(n[0])**3 + int(n[1])**3 + int(n[2]) ** 3 == int(n): 6 # return True 7 # else: 8 # return False

百担百马+百钱百鸡+水仙花数--------“穷举”的三个练习题

1 //百马百担类似于百鸡百钱的问题,穷举 2 3 for(int dm =0;dm<=33;dm++) //大马的数量,第一层循环 4 5 { 6 for(int zm =0;zm<=50;zm++) //中马的数量,第二层循环 7 8 { 9 for(int xm = 0; xm<=200;xm++) //小马的数量,第三层循环 10 11 { 12 if(dm+zm+xm==100&&dm*3+zm*2+xm/2.0==100) 13 { 14 System.out

【华为练习题 】 n位水仙花数(初级)

[华为练习题 ] n位水仙花数(初级) 题目 水仙花数又称阿姆斯特朗数. 水仙花数是指一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身.(例如:1^3 + 5^3 + 3^3 = 153) 求输入的数字是否为水仙花数 解答 #include <iostream> #include <vector> using namespace std; bool isRight(int n){ vector<int> v; int sum = 0, tmp =

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

练习题5:水仙花数

题目描述 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: "水仙花数"是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3. 现在要求输出所有在m和n范围内的水仙花数. 输入描述: 输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999). 输出描述: 对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在

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):  

C的一些简单练习题,关于水仙花数,求和,整数高低位输出,制定二进制位替换

#define _CRT_SECURE_NO_WARNINGS //输出一个整数的每一位 //1.低位输出到高位 #include <stdio.h> #include <stdlib.h> int main() { int a; printf("请输出一个数"); scanf("%d",&a); while(a) { printf("%d ",a % 10); a = a / 10; } system("

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