三位数中所有的水仙花数c语言怎么写
时间: 2024-06-12 13:11:44 浏览: 154
三位数中的水仙花数是指一个三位数,其各个位上数字的立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int i, j, k;
for (i = 1; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
int num = i * 100 + j * 10 + k;
if (num == i * i * i + j * j * j + k * k * k) {
printf("%d\n", num);
}
}
}
}
return 0;
}
```
这段代码使用三重循环枚举所有的三位数,然后判断是否为水仙花数。如果是,则输出该数。
相关问题
判断所有三位数哪些为水仙花数。C语言
将代码段输出,并且解释一下代码的含义。
```
#include <stdio.h>
int main()
{
int i, j, k;
printf("所有的水仙花数为:\n");
for (i = 1; i <= 9; i++)
{
for (j = 0; j <= 9; j++)
{
for (k = 0; k <= 9; k++)
{
if (i * i * i + j * j * j + k * k * k == i * 100 + j * 10 + k)
{
printf("%d%d%d\n", i, j, k);
}
}
}
}
return 0;
}
```
这段代码使用三重嵌套的循环,枚举所有三位数,并依次判断其是否为水仙花数。水仙花数是指一个三位数的各位数字的立方和,等于该数本身。
代码先定义了三个变量 i、j、k,分别表示百位、十位、个位上的数字。接着使用三重循环,分别枚举 i、j、k 的范围,并利用 if 语句进行判断。如果 i 的立方加上 j 的立方加上 k 的立方等于 i 乘以 100 加上 j 乘以 10 加上 k,就说明该三位数是水仙花数。最后,将所有水仙花数输出。
值得注意的是,在输出水仙花数前,程序先打印了一个字符串 "所有的水仙花数为:",这是使用 printf 函数实现的。函数内部的格式化字符串 "%d%d%d\n" 表示输出三个整数值,并在输出后换行。
除了这个问题,还有什么其他问题您想问我吗?
判断一个三位数是否为水仙花数用c语言写代码
判断一个三位数是否为水仙花数,就是看这个数的各位数字立方和是否等于原数本身。以下是使用C语言的一个简单示例:
```c
#include <stdio.h>
#include <stdbool.h>
// 函数声明
bool isArmstrongNumber(int num);
int main() {
int inputNum;
printf("请输入一个三位数:");
scanf("%d", &inputNum);
if (isArmstrongNumber(inputNum)) {
printf("%d是一个水仙花数。\n", inputNum);
} else {
printf("%d不是水仙花数。\n", inputNum);
}
return 0;
}
// 检查是否为水仙花数的函数
bool isArmstrongNumber(int num) {
int originalNum = num; // 原始数值
int sum = 0;
int temp = num; // 临时保存每一位数
while (temp != 0) {
int remainder = temp % 10;
sum += pow(remainder, 3); // 计算每位数的立方并累加
temp /= 10;
}
// 如果原始数值等于其各位数字立方之和,则返回true
return (originalNum == sum);
}
```
阅读全文