请用c++写一个判断输入值是否是自幂数
时间: 2024-05-09 16:19:11 浏览: 145
自幂数是指一个数的每一位数字的n次方之和等于该数本身。
例如,153是自幂数,因为1的3次方 + 5的3次方 + 3的3次方等于153。
以下是用C语言写的判断输入值是否是自幂数的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, remainder, n = 0, result = 0;
printf("请输入一个整数: ");
scanf("%d", &num);
originalNum = num;
// 计算数字的位数
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
// 计算每一位数字的n次方之和
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
// 判断是否为自幂数
if (result == num)
printf("%d 是自幂数.", num);
else
printf("%d 不是自幂数.", num);
return 0;
}
```
这个程序首先要求用户输入一个整数,然后计算数字的位数。接下来,程序计算每一位数字的n次方之和,并将结果存储在变量result中。最后,程序判断result是否等于原始数字num,如果是,则该数字是自幂数,否则不是自幂数。
阅读全文