用c++写一个水仙花数的程序
时间: 2023-12-03 17:03:42 浏览: 76
#include <stdio.h>
#include <math.h>
int main() {
int i, n, sum, temp;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("所有的水仙花数是:");
for(i = 1; i <= n; i++) {
temp = i;
sum = 0;
while(temp != 0) {
sum += pow(temp % 10, 3);
temp /= 10;
}
if(sum == i) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
相关问题
用c++写一个水仙花数
水仙花数指一个 n 位数 (n≥3),它的每个位上的数字的 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;
// 计算水仙花数
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
if (result == num)
printf("%d 是一个水仙花数", num);
else
printf("%d 不是一个水仙花数", num);
return 0;
}
```
输入一个三位数,程序会计算出这个数是否为水仙花数,并输出结果。
用c++写一个水仙花数
水仙花数是指一个三位数各个位上的数字立方和等于该数本身。下面是用 C++ 写的一个求解水仙花数的程序:
```c++
#include <iostream>
using namespace std;
int main() {
int num, sum, digit;
for (int i = 100; i <= 999; i++) {
num = i;
sum = 0;
while (num > 0) {
digit = num % 10;
sum += digit * digit * digit;
num /= 10;
}
if (sum == i) {
cout << i << " ";
}
}
return 0;
}
```
程序的思路是从 100 到 999 遍历每一个三位数,对于每一个数,求出它每一位上的数字立方和,如果等于该数本身,则输出该数。
阅读全文