Python新手学习练习册---04循环与判断之水仙花数

Python新手学习练习册—04循环与判断(100-1000的水仙花数) ##

1.1 基础概念

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant,
PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 n 位数(n≥3
),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

1.2 练习题目

求100到1000的水仙花数

1.3代码答案


print('********** Narcissistic number from 100 to 1000 **********')
def narcissisticNum():                 #定义水仙花数的函数
        for x in range(100,1000):
                bai=x//100             #百位
                shi=(x//10)%10         #十位
                ge=x%10                #个位
                tmpNum=bai**3+shi**3+ge**3 #求百,十,个位立方的和
                if tmpNum==x:               #判断
                        print(tmpNum)


narcissisticNum()                  #调用水仙花树函数

1.4后记

  • // <—-除法后的结果为去掉小数点后小数的整数
  • % <—-除法后的结果的余数
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,下面是回复: 寻找水仙花数是一个常见的编程练习题目,使用for…else…循环结构可以很好地解决这个问题。具体实现方法如下: 1. 首先,我们需要明确什么是水仙花数水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如,153就是一个水仙花数,因为1³+5³+3³=153。 2. 接下来,我们可以使用for循环来遍历所有的三位数,即从100到999。在每次循环中,我们可以将当前的数字拆分成个位、十位和百位,并计算它们的立方和。 3. 如果计算结果等于当前的数字,那么说明这个数字是一个水仙花数,我们可以打印出来。如果for循环正常结束,即没有找到任何水仙花数,那么我们可以使用else语句来输出一条提示信息。 下面是示例代码: for num in range(100, 100): # 拆分数字 digit1 = num // 100 digit2 = (num // 10) % 10 digit3 = num % 10 # 计算立方和 sum_of_cubes = digit1 ** 3 + digit2 ** 3 + digit3 ** 3 # 判断是否为水仙花数 if sum_of_cubes == num: print(num) else: print("没有找到任何水仙花数。") 希望这个回复能够帮助到你,如果还有其他问题,请随时提出。 ### 回答2: 水仙花数是指一个三位数各位数字的立方和等于该数本身的数,例如153就是一个水仙花数,因为$1^3+5^3+3^3=153$。学习Python循环结构之for…else…之寻找水仙花数,我们可以通过以下步骤实现: 1. 定义一个变量count,用于记录找到的水仙花数的个数。 2. 使用for循环从100到999遍历每一个三位数。 3. 在循环中,提取当前数字的个位、十位和百位,计算它们的立方和,若结果等于当前数字,则说明该数字是水仙花数,将count加1,并在控制台输出该数。 4. 在for循环的else代码块中,输出找到的水仙花数的总数。 下面是完整代码实现: ```python count = 0 for i in range(100, 1000): # 提取三位数的个位、十位和百位 baiwei = i // 100 shiwei = (i - baiwei * 100) // 10 gewei = i % 10 # 如果当前数字是水仙花数,输出并将count加1 if baiwei ** 3 + shiwei ** 3 + gewei ** 3 == i: print(i) count += 1 else: # 输出总数 print("一共找到了%d个水仙花数。" % count) ``` 运行程序,输出结果如下: ``` 153 370 371 407 一共找到了4个水仙花数。 ``` 从输出可以看出,我们找到了4个水仙花数,和定义相符合。通过学习Python循环结构之for…else…之寻找水仙花数,我们不仅学习了for循环和else语句的用法,还锻炼了自己的编程思维和实践能力。 ### 回答3: 在学习 Python 循环结构中,我们会接触到 for…else… 这一结构,它是一种特殊的结构,用来寻找指定范围内的某些数,并在找到时执行特定的操作。其中,“else”子句是可选的,它用来在循环条件不满足时执行的操作。 在这里,我们以寻找水仙花数为例来介绍 for…else… 结构的使用方法。 什么是水仙花数水仙花数是指一个三位数,其各个位上的数字的立方和等于该数本身。例如,153 就是一个水仙花数,因为 1 的立方 + 5 的立方 + 3 的立方等于 153。 如何使用 for…else… 结构找出所有的水仙花数? 首先,我们需要确定一下需要查找的数的范围,即所有的三位数。然后,我们需要使用 for 循环来依次检查每个三位数是否为水仙花数。检查方法为,将该数的百位、十位、个位上的数字分别取出,然后计算它们的立方和是否等于该数本身。如果是,就表明该数是水仙花数。 代码如下: ``` for i in range(100, 1000): a = i // 100 # 取百位 b = (i // 10) % 10 # 取十位 c = i % 10 # 取个位 if a**3 + b**3 + c**3 == i: print(i) else: print("没有找到水仙花数") ``` 在上述代码中,我们使用了一个 for 循环来遍历范围内的所有三位数,并将它们的百位、十位、个位上的数字依次取出。然后,使用 if 语句来判断该数是否为水仙花数,如果是,就打印出来;否则,继续循环。最后,使用 else 子句来输出“没有找到水仙花数”。 总结 通过以上介绍,我们了解了 for…else… 语句的使用方法,以及如何使用 Python 语言寻找水仙花数。对于 Python 初学者来说,掌握了这个知识点之后,就可以更加深入地理解并使用 Python循环结构了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值