用c语音输入一个整数,判断其是否为水仙花数。水仙花数是指一个3位数,它的各位数字的3次幂之和等于它本身。
时间: 2023-08-29 07:12:45 浏览: 40
以下是用C语言实现判断一个三位数是否为水仙花数的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, sum = 0;
printf("请输入一个三位数:");
scanf("%d", &num);
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (sum == num)
printf("%d是水仙花数\n", num);
else
printf("%d不是水仙花数\n", num);
return 0;
}
```
运行程序,输入一个三位数,程序会判断该数是否为水仙花数并输出结果。
相关问题
用c语音编写一个函数判断一个数是否为水仙花数
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。
例如:1^3 + 5^3 + 3^3 = 153
下面是用C语言编写的判断一个数是否为水仙花数的函数:
```c
#include <stdio.h>
#include <math.h>
int isNarcissisticNumber(int num)
{
int n = 0, temp = num, sum = 0;
// 计算num的位数
while (temp > 0) {
temp /= 10;
n++;
}
temp = num;
// 计算每个位上数字的n次方之和
while (temp > 0) {
int digit = temp % 10;
sum += pow(digit, n);
temp /= 10;
}
// 判断是否为水仙花数
if (sum == num) {
return 1; // 是水仙花数
} else {
return 0; // 不是水仙花数
}
}
int main()
{
int num;
printf("请输入一个数字:");
scanf("%d", &num);
if (isNarcissisticNumber(num)) {
printf("%d是水仙花数\n", num);
} else {
printf("%d不是水仙花数\n", num);
}
return 0;
}
```
该程序先计算出num的位数n,然后依次计算num的每一位的n次方之和sum,最后判断sum是否等于num,如果相等就说明num是水仙花数,否则就不是。
c语音输入一个整数,要求将该整数上各位数字是偶数的数取出,并按原来从高位到低位的顺序组成一个新数
思路:
1. 读入整数;
2. 循环取出各位数字;
3. 判断数字是否为偶数,如果是,加入到新数中;
4. 输出新数。
代码实现:
```c
#include <stdio.h>
int main() {
int num, new_num = 0, digit, base = 1;
printf("请输入一个整数:");
scanf("%d", &num);
while (num > 0) {
digit = num % 10;
if (digit % 2 == 0) {
new_num += digit * base;
base *= 10;
}
num /= 10;
}
if (new_num == 0) {
printf("该数字中没有偶数位数字。\n");
} else {
printf("新的数字为:%d\n", new_num);
}
return 0;
}
```
示例输出:
```
请输入一个整数:123456789
新的数字为:2468
```
```
请输入一个整数:13579
该数字中没有偶数位数字。
```