c语言pta水仙花数
时间: 2024-09-22 11:03:21 浏览: 58
C语言中,判断一个数字是否为“水仙花数”(也称为纳皮尔's 玫瑰数或哈雷数),是指该数的每个位上的数字立方和等于原数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是一个简单的C程序示例,用于检查给定的整数是否为水仙花数:
```c
#include <stdio.h>
int is Narcissistic(int num) {
int sum = 0;
while (num != 0) {
int digit = num % 10; // 取余得到个位数
sum += digit * digit * digit; // 累加立方
num /= 10; // 移除个位
}
return sum == num; // 如果累加后的结果等于原始数,就是水仙花数
}
int main() {
int number;
printf("请输入一个整数:");
scanf("%d", &number);
if (is Narcissistic(number)) {
printf("%d是水仙花数。\n", number);
} else {
printf("%d不是水仙花数。\n", number);
}
return 0;
}
```
相关问题
水仙花数c语言pta
水仙花数( Narcissistic Number 或者 Pluperfect Digital Invariant),是一种特殊的整数,它的各位数字立方和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在C语言中,检测一个数是否是水仙花数可以编写如下的函数:
```c
#include <stdio.h>
int is_narcissistic(int num) {
int digits[10], sum = 0;
while (num > 0) {
digits[sum] = num % 10; // 获取最后一位并存入数组
num /= 10; // 清除最后一位
sum++;
}
int remaining_sum = 0;
for (int i = 0; i < sum; i++) {
remaining_sum += digits[i] * digits[i] * digits[i]; // 计算立方和
}
return (remaining_sum == num); // 如果两者相等,返回true,否则false
}
int main() {
int number;
printf("Enter a number to check if it's a narcissistic number: ");
scanf("%d", &number);
if (is_narcissistic(number)) {
printf("%d is a Narcissistic number.\n", number);
} else {
printf("%d is not a Narcissistic number.\n", number);
}
return 0;
}
```
pta水仙花数c语言程序
可以这样写:
#include <stdio.h>
#include <math.h>
int main()
{
int num, hundreds, tens, units, sum;
for (num = 100; num <= 999; num++)
{
hundreds = num / 100;
tens = num % 100 / 10;
units = num % 10;
sum = pow(hundreds, 3) + pow(tens, 3) + pow(units, 3);
if (sum == num)
printf("%d ", num);
}
return 0;
}
这个程序实现了输出所有的“水仙花数”,即一个三位数各个位上的数字立方和等于该数本身。
阅读全文