c语言水仙花数是指一个三位数,其各个位上数字的立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。因此,如果输入的整数n是一个三位数,判断是不是水仙花数
时间: 2023-04-12 12:01:50 浏览: 180
可以使用以下代码来判断一个三位数是否为水仙花数:
#include <stdio.h>
int main() { int n, sum = 0, temp; printf("请输入一个三位数:"); scanf("%d", &n); temp = n; while (temp != 0) { int digit = temp % 10; sum += digit * digit * digit; temp /= 10; } if (sum == n) { printf("%d是水仙花数\n", n); } else { printf("%d不是水仙花数\n", n); } return 0; }
注意:这段代码只能判断三位数是否为水仙花数,如果输入的数不是三位数,程序会输出错误结果。
相关问题
打印所有水仙花数,水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如 153是水仙花数用c语言
在C语言中,我们可以编写一个简单的程序来找出所有的水仙花数。以下是一个基本的示例:
#include <stdio.h>
// 计算一个整数的各位数字立方之和
int sumOfCubes(int num) {
int cubeSum = 0;
while (num > 0) {
int digit = num % 10;
cubeSum += digit * digit * digit;
num /= 10;
}
return cubeSum;
}
// 主函数,遍历并打印水仙花数
void printWaterLilyNumbers() {
for (int i = 100; i <= 999; i++) {
if (sumOfCubes(i) == i) {
printf("%d ", i);
}
}
}
int main() {
printWaterLilyNumbers();
return 0;
}
在这个程序中,我们首先定义了一个辅助函数sumOfCubes
计算输入整数的立方和,然后在printWaterLilyNumbers
函数中,从100到999逐个检查每个数字是否满足水仙花数条件。如果满足,就将其打印出来。
用c语言水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=111+555+333。
水仙花数( Narcissistic Number 或者 Pluperfect Digital Invariant)是指那些每一位数字的三次幂之和等于原数本身的正整数。在C语言中,判断一个数是否为水仙花数通常会通过循环结构计算每个位数的立方,然后将它们相加并比较结果。下面是一个简单的C程序示例,用于检查一个三位数是否为水仙花数:
#include <stdio.h>
#include <stdbool.h>
bool isNarcissistic(int num) {
int digits[4], sum = 0;
// 将数字分解为三个位
if (num < 100 || num > 999) return false;
while (num > 0) {
digits[3] = num % 10; // 取最后一位
num /= 10;
for (int i = 0; i < 3 && digits[i] != 0; i++) { // 计算立方并累加
sum += digits[i] * digits[i] * digits[i];
}
}
// 如果所有的位立方和等于原数,则返回true
return sum == num;
}
int main() {
int input;
printf("请输入一个三位数: ");
scanf("%d", &input);
if (isNarcissistic(input)) {
printf("%d 是一个水仙花数.\n", input);
} else {
printf("%d 不是水仙花数.\n", input);
}
return 0;
}
阅读全文
相关推荐















