水仙花数c语言代码100到999
时间: 2024-11-29 07:37:03 浏览: 26
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。以下是用 C 语言编写的一个简单程序,用于找出100到999范围内的所有水仙花数:
```c
#include <stdio.h>
int is narcissistic(int num) {
int digits[3];
int sum = 0;
// 分离出每一位数字并计算立方和
while (num > 0) {
digits[2] = num % 10;
sum += digits[2] * digits[2] * digits[2];
num /= 10;
}
// 如果立方和等于原数,则是水仙花数
return sum == num;
}
int main() {
for (int i = 100; i <= 999; ++i) {
if (is_narcissistic(i)) {
printf("%d ", i);
}
}
return 0;
}
```
这个程序首先定义了一个辅助函数 `is_narcissistic` 来检查一个数是否为水仙花数,然后在 `main` 函数中遍历100到999之间的每一个数,如果遇到水仙花数就打印出来。
相关问题
千位水仙花数C语言代码
千位水仙花数是指一个四位数,其各位数字的立方和等于该数本身。例如:1634是一个水仙花数,因为1^3 + 6^3 + 3^3 + 4^3 = 1634。
以下是一个简单的C语言代码实现:
```c
#include <stdio.h>
int main() {
int num, digit, sum;
printf("千位水仙花数:\n");
for (num = 1000; num < 10000; num++) {
sum = 0;
for (int i = 0; i < 4; i++) {
digit = num % 10;
sum += digit * digit * digit;
num /= 10;
}
if (sum == num) {
printf("%d\n", num);
}
}
return 0;
}
```
该代码使用了两个循环,外层循环遍历所有四位数,内层循环计算每个数的各位数字的立方和。如果计算结果等于该数本身,则输出该数。
水仙花数c语言代码编程
水仙花数,也称为 narcissistic number 或 pluperfect digital invariant,是指一个三位数(每位数字相加三次等于原数本身)。下面是一个简单的 C 语言程序,用于找出所有的水仙花数:
```c
#include <stdio.h>
int is_narcissistic(int num) {
int digits[3], sum = 0;
while (num > 0) {
digits[sum++] = num % 10;
num /= 10;
}
for (int i = 0; i < sum; i++) {
if (digits[i] != (digits[0] * digits[0] + digits[1] * digits[1] + digits[2] * digits[2])) {
return 0; // 如果任一位不满足条件则返回0
}
}
return 1; // 所有位都满足条件,返回1表示是水仙花数
}
int main() {
int start = 100, end = 999;
printf("水仙花数:\n");
for (int num = start; num <= end; num++) {
if (is_narcissistic(num)) {
printf("%d ", num);
}
}
return 0;
}
```
这个程序首先定义了一个`is_narcissistic`函数,用于检查一个数是否为水仙花数。主函数中遍历100到999之间的所有整数,如果某个数是水仙花数,就打印出来。
阅读全文