c语言写一个求水仙花数的函数,然后通过主函数调用该函数求100到999之间的全部水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
时间: 2024-05-06 16:19:25 浏览: 78
好的,这是一个关于 C 语言编写程序的技术问题,我可以回答。以下是代码示例:
```c
#include <stdio.h>
int narcissistic(int num)
{
int ones = num % 10;
int tens = (num / 10) % 10;
int hundreds = num / 100;
int sum = ones * ones * ones + tens * tens * tens + hundreds * hundreds * hundreds;
return sum == num;
}
int main()
{
for (int i = 100; i <= 999; i++) {
if (narcissistic(i)) {
printf("%d\n", i);
}
}
return 0;
}
```
在主函数中,我们使用循环遍历 100 到 999 之间的所有三位数,调用 `narcissistic` 函数判断该数是否为水仙花数,如果是则打印输出。在 `narcissistic` 函数中,我们先将输入的三位数拆分为个位、十位和百位数字,然后计算立方和,并返回判断结果。
相关问题
使用c语言实现,编写一个判断水仙花的函数,所谓水仙花数是指一个三位数的立方和等于该数的本身,例如153是一个水仙花数,因为。通过主函数调用该函数求100~999之间的全部水仙花数
在C语言中,我们可以创建一个函数`is_armstrong_number`来判断一个整数是否为水仙花数。首先,我们需要定义一个辅助函数`sum_of_digits`来计算数字的各个位数之和。接着,在`is_armstrong_number`函数中,我们会先检查输入的数是否满足三位数条件,然后计算其立方和并与原数进行比较。
下面是实现这个功能的代码:
```c
#include <stdio.h>
// 辅助函数,计算给定数的各位数字之和
int sum_of_digits(int num) {
int sum = 0;
while (num != 0) {
sum += num % 10; // 取余数并累加到总和
num /= 10; // 将数除以10取下一个位
}
return sum;
}
// 判断是否为水仙花数
int is_armstrong_number(int num) {
if (num < 100 || num > 999) { // 检查是否是三位数
return 0;
}
int original_num = num; // 保存原始数值
int cube_sum = sum_of_digits(num * num * num); // 计算立方和
// 如果立方和等于原始数,则是水仙花数
return cube_sum == original_num;
}
int main() {
for (int i = 100; i <= 999; ++i) {
if (is_armstrong_number(i)) {
printf("%d 是水仙花数。\n", i);
}
}
return 0;
}
```
在这个程序中,我们通过循环遍历100到999之间的所有整数,并使用`is_armstrong_number`函数检查每个数是否是水仙花数。如果找到符合条件的数,就打印出来。
用C语言写一个函数判断一个数是否为水仙花数,主函数通过函数调用的方式求100-500之间的所有水仙花数并输出。
好的,这里是一个用C语言实现的判断水仙花数的函数和一个主函数来调用它:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_narcissistic_number(int n) {
int sum_of_cubes = 0;
int temp = n;
while (temp > 0) {
int digit = temp % 10;
sum_of_cubes += digit * digit * digit;
temp /= 10;
}
return sum_of_cubes == n;
}
int main() {
// 在100-500范围内查找所有水仙花数
for (int n = 100; n <= 500; n++) {
if (is_narcissistic_number(n)) {
printf("%d\n", n);
}
}
return 0;
}
```
输出:
```
153
370
371
407
```
希望这个代码可以帮到你!
阅读全文