无我

在小学尝试以Python为载体培养学生计算思维

用枚举法(穷举法)找出所有水仙花数

水仙花数是指一个 3 位整数,它的每个位上的数字的 3次幂(就是把这个数字连乘3次)之和等于它本身。例如:1**3 + 5**3+ 3**3 = 153。

一、数学建模

1、首先一个三位数肯定是在100到999之间。

2、可以从100开始测试:每个数都用个位数连乘3次+十位数连乘3次+百位数连乘3次,看看结果是否等于这个数本身。

思路很简单,但是100——999一共有900个数,靠人力一个个去算实在是太麻烦了,所以这时候就要考虑用计算机是代替人力。

二、算法设计

1、用循环结构可以实现一个数从100一直变化到999

2、对于每次循环,假设当前数字为n,需要将n拆分成 个位数、十位数、百位数。

  • 百位数:百位数可以用n÷100取整,整数就是百位数。

  • 十位数:十位数可以用n÷100求得余数,再用这个余数÷10取整数。也可以先用n÷10取整再对这个数÷10取余数。

  • 个位数:可以用让n÷10求出余数,余数就是个位数。

3、每次循环中检测百位数**3+十位数**3+个位数**3,看看结果与这个数本身是否相等,如果相等就是水仙花数。否则进行下一次循环检测下一个数。

三、算法实现


程序运行结果:


人力难以完成的事情,计算机只需要不到1秒钟就可以完成。像这种利用计算机运算速度快、精确度高的特点,对所有可能的数据一个不漏地进行检验,从中找出符合要求的答案的方法叫做枚举法。

评论 ( 1 )
热度 ( 1 )

© 无我 | Powered by LOFTER