请你写一个输出水仙花数的c++程序
时间: 2023-03-31 07:05:01 浏览: 109
#include <stdio.h>
int main() {
int i, j, k;
for (i = 100; i < 100; i++) {
j = i / 100; // 百位数
k = i % 100; // 十位数和个位数
if (i == j * j * j + k / 10 * k / 10 * k % 10) {
printf("%d\n", i);
}
}
return ;
}
相关问题
c++语言输出水仙花数的程序
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。在C++中,你可以编写一个简单的程序来找出所有的水仙花数。下面是一个示例程序:
```cpp
#include <iostream>
#include <vector>
bool is narcissistic(int number) {
int sum = 0;
int temp = number;
// 分离每一位数字并计算它们的立方和
while (temp != 0) {
int digit = temp % 10;
sum += std::pow(digit, 3);
temp /= 10;
}
// 如果立方和等于原数,返回true,否则false
return sum == number;
}
int main() {
std::vector<int> narcissistic_numbers;
for (int i = 100; i <= 999; ++i) { // 遍历三位数范围
if (is_narcissistic(i)) {
narcissistic_numbers.push_back(i); // 存储水仙花数
}
}
// 输出所有找到的水仙花数
std::cout << "The Narcissistic numbers in the given range are:\n";
for (const auto& num : narcissistic_numbers) {
std::cout << num << " ";
}
std::cout << "\n";
return 0;
}
```
在这个程序中,我们首先定义了一个辅助函数`is_narcissistic`用于检查一个数是否是水仙花数。然后,在主函数中遍历100到999的所有整数,并将符合条件的水仙花数添加到`narcissistic_numbers`向量中。最后,输出这个向量中的所有元素。
水仙花数c++语言程序
水仙花数是指一个三位数,它的各位数字的立方和等于该数本身。例如153就是一个水仙花数,因为1^3+5^3+3^3=153。下面是两个C++语言程序实现水仙花数的输出:
1.使用for循环实现:
#include <iostream>
using namespace std;
int main() {
int a=100,s,d,f;
for(a=100;a<1000;a++) {
s=a%10;//求出个位
d=(a/10)%10;//求出十位
f=a/100;//求出百位
if(a==s*s*s+d*d*d+f*f*f)
cout<<a<<" ";
}
cout<<endl;
return 0;
}
2.使用do-while循环实现:
#include<iostream>
#include<cmath>
using namespace std;
int main() {
int a, b, c, n;
cin >> n;
int x = 100;
do {
a = x % 10;//分离出个位
b = x / 10 % 10;//分离出十位
c = x / 100 % 10;//分离出百位
if (x == pow(a,3) + pow(b,3) + pow(c,3))//使用pow函数,需要头文件cmath
cout << x << " ";
x++;
} while (x <= n);
return 0;
}
阅读全文