用C程序实现100~999之间所有水仙花数的查找153 =1*1*1+5*5*5+3*3*3
时间: 2024-04-23 20:20:52 浏览: 96
要实现查找100~999之间的所有水仙花数,首先需要了解什么是水仙花数。水仙花数是指一个三位数,其各个位上的数字的立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是用C程序实现查找100~999之间所有水仙花数的代码:
```c
#include <stdio.h>
int main() {
int num, digit, sum;
printf("100~999之间的水仙花数有:\n");
for (num = 100; num <= 999; num++) {
sum = 0;
int temp = num;
while (temp > 0) {
digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == num) {
printf("%d ", num);
}
}
return 0;
}
```
运行以上代码,会输出100~999之间的所有水仙花数。
相关问题
C语言 输宧宷有宸“水仙宱宺”,宷谓宸“水仙宱宺”是指一个3位宺,宲个位宺字立方和等于该宺本身,例如,153是一“水仙宱宺”,因为153=1*1*1+5*5*5+3*3*3。
C语言是一种通用、过程化的编程语言,由丹尼斯·里奇(Dennis Ritchie)于1972年设计并首次发布。它是Unix操作系统的核心语言之一,以其结构清晰、效率高和移植性强而闻名。C语言支持结构化编程,包括基本的数据类型、控制结构(如if-else、for、while等)、函数以及指针等特性,这使得程序员能够编写高效且底层控制力强的程序。
关于您提到的"水仙花数"(又称 narcissistic number),它确实与C语言无关,但可以用C语言编写程序来找出符合条件的3位数。水仙花数是指一个n位正整数,其每个位置上的数字的n次幂之和等于原数本身。例如,153就是3位水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
下面是一个简单的C语言函数,用于查找3位数内的所有水仙花数:
```c
#include <stdio.h>
#include <stdbool.h>
bool isNarcissistic(int num) {
int digits[4]; // 3位数最大,这里多留一位
int digit_sum = 0;
int temp = num;
while(temp > 0) {
digits[temp%10]++;
temp /= 10;
}
for(int i = 0; i < 3; i++) { // 检查每一位是否满足条件
if(digits[i] != (num / pow(10, i)) || digits[i] == 0) {
return false;
}
}
return true;
}
int main() {
for(int i = 100; i < 1000; i++) {
if(isNarcissistic(i)) {
printf("%d is a Narcissistic number.\n", i);
}
}
return 0;
}
```
8.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于 该数本身。例如,153是水仙花数,因为153=1+5+3。用c语言
在C语言中,你可以通过循环遍历三位数范围并检查每个数是否满足水仙花数的条件来找出它们。下面是一个简单的示例程序:
```c
#include <stdio.h>
int is narcissistic(int num) {
int digits[3], sum = 0;
// 分离每一位数字
while (num > 0) {
digits[2] = num % 10; // 最右边
num /= 10;
if (digits[2] != 0) {
for (int i = 0; i < 2; i++) {
digits[i] = num % 10;
num /= 10;
}
}
// 累加立方和
sum += digits[2]*digits[2]*digits[2];
sum += digits[1]*digits[1]*digits[1];
sum += digits[0]*digits[0]*digits[0];
}
return sum == num; // 如果累加和等于原数,则是水仙花数
}
int main() {
for (int i = 100; i <= 999; i++) { // 遍历三位数
if (is_narcissistic(i)) {
printf("%d 是水仙花数。\n", i);
}
}
return 0;
}
```
在这个程序中,`is_narcissistic` 函数负责判断一个数是否是水仙花数,`main` 函数则用于查找并打印符合条件的数。
阅读全文