c++打印所有的水仙花数
时间: 2023-09-06 11:12:43 浏览: 110
水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为 $1^3 + 5^3 + 3^3 = 153$。
以下是使用 C++ 编写的打印所有水仙花数的程序:
```cpp
#include <iostream>
using namespace std;
int main() {
for (int i = 100; i <= 999; i++) {
int num = i;
int sum = 0;
while (num > 0) {
int digit = num % 10;
sum += digit * digit * digit;
num /= 10;
}
if (sum == i) {
cout << i << " ";
}
}
cout << endl;
return 0;
}
```
这个程序使用了一个 `for` 循环来遍历所有的三位数,对于每个数,它使用一个 `while` 循环来计算该数的各位数字的立方和。如果这个和等于原数,则将这个数打印出来。
相关问题
面向对象的程序C++输出所有水仙花数
在C++中,水仙花数是一种特殊的整数,其各位数字立方之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。为了输出所有的水仙花数,你可以编写一个函数来检查这个特性,然后遍历一定范围内的整数。
下面是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
bool is narcissistic(int num) {
int sum = 0;
while (num > 0) {
int digit = num % 10;
sum += digit * digit * digit; // 计算每个位的立方并累加
num /= 10;
}
return sum == num;
}
void find_narcissistic_numbers(int start, int end) {
for (int i = start; i <= end; ++i) {
if (is_narcissistic(i)) {
std::cout << i << " ";
}
}
}
int main() {
int range_start = 100; // 设置查找范围开始值
int range_end = 999; // 设置查找范围结束值
find_narcissistic_numbers(range_start, range_end);
return 0;
}
```
在这个程序中,`is_narcissistic` 函数用于检查一个数字是否是水仙花数,`find_narcissistic_numbers` 函数则遍历指定范围内的数并打印出符合条件的水仙花数。运行 `main` 函数会输出1到999之间的所有水仙花数。
用c++打印出所有的水仙花数
#include <stdio.h>
#include <math.h>
int main() {
int i, j, k, n;
printf("水仙花数有:\n");
for (n = 100; n <= 999; n++) {
i = n / 100; // 获取百位数
j = (n / 10) % 10; // 获取十位数
k = n % 10; // 获取个位数
if (n == pow(i, 3) + pow(j, 3) + pow(k, 3)) {
printf("%d ", n);
}
}
printf("\n");
return 0;
}
阅读全文