编程输入一个3位数的整数,判断该数是否是水仙数。一个整数是水仙花数的条件是该数等于该数各位上的数学立方和,输出1或者0,1表示是水仙数,0表示不是水仙数c语言
时间: 2023-05-28 17:06:33 浏览: 94
#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, remainder, result = 0, n = 0;
printf("请输入一个三位数:");
scanf("%d", &num);
originalNum = num;
// 计算位数
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
// 计算立方和
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
// 判断是否为水仙数
if (result == num)
printf("%d 是水仙数。\n", num);
else
printf("%d 不是水仙数。\n", num);
return 0;
}
相关问题
输入一个3位数的整数,判断该数是否是水仙数。一个整数是水仙花数的条件是该数等于该数各位上的数学立方和,例如:153=13+53+33。 输入 输入一个3位数的整数 输出 输出1或0,1表示是水仙花数,0表示不是水仙花数 样例输入 复制 153 样例输出 复制 1
这是一个编程类的问题,可以回答。以下是一个可能的解决方案:
```
#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, remainder, result = 0, n = 0;
printf("请输入一个三位数:");
scanf("%d", &num);
originalNum = num;
// 计算各位数字的立方和
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
// 判断是否是水仙花数
if (result == num) {
printf("1");
}
else {
printf("0");
}
return 0;
}
```
你可以将以上代码复制到你的程序中运行,输入一个三位数,程序将输出1或0,表示它是否是水仙花数。
拓展:输入一个3位整数,判断该数是否为水仙花数。水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
为了判断一个三位数是否为水仙花数,我们可以编写一个函数来实现。该函数的功能是计算一个三位数的每个位上数字的三次幂之和,并将其与该数本身进行比较,如果相等则返回true,否则返回false。具体实现如下所示(使用JavaScript语言):
```javascript
function isNarcissisticNumber(num) {
var sum = 0;
var temp = num;
while (temp > 0) {
var digit = temp % 10;
sum += Math.pow(digit, 3);
temp = Math.floor(temp / 10);
}
return sum === num;
}
```
在上述代码中,我们首先定义了一个名为isNarcissisticNumber的函数,该函数接受一个参数num,表示要判断的三位数。接着,我们定义了两个变量sum和temp,分别用于存储每个位上数字的三次幂之和和临时变量。然后,我们使用while循环来遍历num的每一位数字,并计算其三次幂之和。最后,我们将计算出的和与num进行比较,如果相等则返回true,否则返回false。
如果要判断一个三位数是否为水仙花数,只需要调用上述函数即可。例如,要判断153是否为水仙花数,可以这样调用:
```javascript
var num = 153;
var result = isNarcissisticNumber(num);
console.log(result); // 输出true
```
阅读全文