以下是完整的CSDN格式文章:
水仙花数的十种解决方案
什么是水仙花数?
水仙花数(Narcissistic number),也称为自恋数、自幂数或阿姆斯特朗数,是指一个n位数(n≥3),其各个位上的数字的n次幂之和等于该数本身。例如:153是一个三位数的水仙花数,因为 (1^3 + 5^3 + 3^3 = 153)。
接下来,我们将展示如何通过不同的编程技巧来查找水仙花数。
1. 基本循环法
直接通过循环检查每个数字是否为水仙花数。
#include <stdio.h>
#include <math.h>
int main() {
for (int num = 100; num < 1000; num++) {
int sum = 0, temp = num;
while (temp) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (sum == num) printf("%d ", num);
}
return 0;
}
2. 函数封装将计算部分封装到函数中,提高代码复用性。#include <stdio.h>
#include <math.h>
int isNarcissistic(int num) {
int sum = 0, temp = num;
while (temp) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
return sum == num;
}
int main() {
for (int num = 100; num < 1000; num++)
if (isNarcissistic(num)) printf("%d ", num);
return 0;
}
3. 数字字符串处理将数字转换为字符串处理,利用ASCII值计算。#include <stdio.h>
#include <math.h>
#include <string.h>
int main() {
char strNum[4];
for (int num = 100; num < 1000; num

1万+

被折叠的 条评论
为什么被折叠?



