水仙花算法:自幂数的寻找与实现
水仙花算法,又称为阿姆斯特朗数算法,是一种用于寻找自幂数的算法。自幂数指的是一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如,153就是一个自幂数,因为1^3 + 5^3 + 3^3 = 153。
水仙花算法的实现步骤如下:
- 首先确定需要查找的自幂数的位数n。
- 枚举n位数的所有可能,计算每个数的各位数字的n次幂之和。
- 如果计算出来的和等于这个数本身,则说明这个数是自幂数,将其输出。
- 继续枚举下一个数,直到找到所有的自幂数。
例如,当n=3时,需要查找所有的三位自幂数。枚举所有的三位数,计算它们的各位数字的3次幂之和,如果等于这个数本身,则输出它。具体实现代码如下:
for(int i=100; i<=999; i++) {
int temp = i;
int sum = 0;
while(temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if(sum == i) {
cout << i << endl;
}
}
这段代码会输出所有的三位自幂数,即153、370、371、407。
原文地址: https://www.cveoy.top/t/topic/mnxC 著作权归作者所有。请勿转载和采集!