用c语言编写实现一个水仙花数370,370等于3的三次方加上7的三次方加上0的三次方
时间: 2023-03-19 14:21:53 浏览: 115
下面是用C语言编写实现一个水仙花数370的代码:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int num = 370; // 水仙花数370
int digit1 = num / 100; // 百位数
int digit2 = num % 100 / 10; // 十位数
int digit3 = num % 10; // 个位数
// 判断是否为水仙花数
if (pow(digit1, 3) + pow(digit2, 3) + pow(digit3, 3) == num)
{
printf("%d是水仙花数。\n", num);
}
else
{
printf("%d不是水仙花数。\n", num);
}
return 0;
}
```
程序首先定义了一个变量`num`,并赋值为370,这就是要判断的水仙花数。
接下来,程序把370的百位、十位和个位数分别提取出来,用变量`digit1`、`digit2`和`digit3`来存储。
最后,程序用`pow`函数计算出三个数的立方和,如果等于原数370,则说明它是水仙花数,输出相应的提示信息;否则,输出另一个提示信息。
相关问题
用c语言编写一个水仙花数
好的,水仙花数是指一个 n 位数 ( n ≥ 3 ),它的每个位上的数字的 n 次幂之和等于它本身。例如:153 = 1^3 + 5^3 + 3^3。
下面是一个用 C 语言编写的水仙花数判断程序:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int num, sum = 0, count = 0, temp;
printf("请输入一个三位数:");
scanf("%d", &num);
temp = num;
while (temp > 0)
{
count++;
temp /= 10;
}
temp = num;
while (temp > 0)
{
sum += pow(temp % 10, count);
temp /= 10;
}
if (num == sum)
{
printf("%d 是水仙花数\n", num);
}
else
{
printf("%d 不是水仙花数\n", num);
}
return 0;
}
```
这个程序首先让用户输入一个三位数,然后检查这个数是不是水仙花数。程序先用一个变量 `count` 记录这个数的位数,然后用一个循环计算出这个数的每一位的 n 次幂之和,如果和等于这个数本身,则说明这个数是水仙花数,否则不是。
做一个是C语言程序:输出所有的水仙花数所谓水仙花数是指一个三位数其各位数字立方和等于该数本身,例如153是水仙花数因为153等于一的三次方加五的三次方加三的三次方
在C语言中,可以编写一个小函数来检查一个三位数是否是水仙花数。首先,我们需要创建一个名为`is narcissistic_number`的函数,它接收一个整数作为输入,然后计算并比较各个位的立方和是否与原数相等。以下是实现这个功能的代码:
```c
#include <stdio.h>
// 函数声明
int cube_sum(int num);
// 主函数
int main() {
int start = 100; // 考虑到是三位数,从100开始
int end = 999; // 包含999
for (int i = start; i <= end; i++) {
if (cube_sum(i) == i) { // 检查是否满足水仙花条件
printf("%d 是水仙花数。\n", i);
}
}
return 0;
}
// 计算一个数各位置的立方和
int cube_sum(int num) {
int sum = 0;
int temp = num; // 备份num以便获取个位、十位和百位
while (temp > 0) {
int digit = temp % 10; // 取出个位
sum += digit * digit * digit; // 立方和累加
temp /= 10; // 移除个位
}
return sum;
}
```
阅读全文