网站首页 网站地图
网站首页 > 娱乐人生 > c语言水仙花数题目怎么编程

c语言水仙花数题目怎么编程

时间:2026-03-20 14:21:36

方法一:嵌套循环法

```c

include

include

int main() {

int i, a, b, c, sum;

for (i = 100; i <= 999; i++) {

a = i % 10;

b = (i % 100 - i % 10) / 10;

c = (i - i % 10 - b * 10) / 100;

sum = a * a * a + b * b * b + c * c * c;

if (sum == i) {

printf("%d ", i);

}

}

return 0;

}

```

方法二:数学运算法

```c

include

int main() {

int i, num, digit, sum;

printf("水仙花数为:\n");

for (num = 100; num <= 999; num++) {

digit = num % 10;

sum = digit * digit * digit;

num /= 10;

while (num > 0) {

digit = num % 10;

sum += digit * digit * digit;

num /= 10;

}

if (sum == num) {

printf("%d ", num);

}

}

return 0;

}

```

方法三:数组存储法

```c

include

int main() {

int i, num, digit, sum;

int narcissistic_numbers;

int count = 0;

printf("水仙花数为:\n");

for (num = 100; num <= 999; num++) {

digit = num % 10;

sum = digit * digit * digit;

num /= 10;

while (num > 0) {

digit = num % 10;

sum += digit * digit * digit;

num /= 10;

}

if (sum == num) {

narcissistic_numbers[count++] = num;

}

}

for (i = 0; i < count; i++) {

printf("%d ", narcissistic_numbers[i]);

}

return 0;

}

```

方法四:递归法

```c

include

int is_narcissistic(int num) {

int sum = 0, digit;

while (num > 0) {

digit = num % 10;

sum += digit * digit * digit;

num /= 10;

}

return sum == num;

}

int main() {

int i, count = 0;

printf("水仙花数为:\n");

for (i = 100; i <= 999; i++) {

if (is_narcissistic(i)) {

printf("%d ", i);

count++;

}

}

return 0;

}

```

以上是几种常见的C语言编程求解水仙花数的方法,可以根据实际需求选择合适的方法进行实现。