水仙花数是指一个 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秒钟就可以完成。像这种利用计算机运算速度快、精确度高的特点,对所有可能的数据一个不漏地进行检验,从中找出符合要求的答案的方法叫做枚举法。