c++用for循环求水仙花数
时间: 2023-11-23 07:08:18 浏览: 118
以下是使用C++中的for循环求解水仙花数的代码:
```c++
#include <iostream>
using namespace std;
int main() {
cout << "The narcissus from 1 to 1000!" << endl;
for (int n = 100; n < 1000; n++) {
int b = n / 100; // 百位数字
int s = n / 10 % 10; // 十位数字
int g = n % 10; // 个位数字
if (n == g * g * g + s * s * s + b * b * b) {
cout << "Next narcissus is: " << n << endl;
}
}
return 0;
}
```
该程序使用for循环遍历1到1000之间的所有数字,对于每个数字,分别计算其百位、十位和个位数字,并判断该数字是否为水仙花数。如果是水仙花数,则输出该数字。
相关问题
c++如何求水仙花数
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如153就是一个水仙花数,因为1^3+5^3+3^3=153。下面是两种C++代码实现水仙花数的方法:
1.使用for循环和if语句:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int a, 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.使用while循环和if语句:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n = 100;
while (n < 1000) {
int a = n % 10;//求出个位
int b = (n / 10) % 10;//求出十位
int c = n / 100;//求出百位
if (n == a * a * a + b * b * b + c * c * c)
cout << n << " ";
n++;
}
cout << endl;
return 0;
}
c++里面用while输出水仙花数
在C++中,水仙花数是指那些各位数字立方和等于其本身的三位数。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。下面是一个简单的while循环程序,用于找出并打印所有的水仙花数:
```cpp
#include <iostream>
#include <vector>
bool is_armstrong_number(int num) {
int original_num = num;
int sum = 0;
while (num != 0) {
int digit = num % 10;
sum += digit * digit * digit; // 立方和
num /= 10;
}
return sum == original_num;
}
int main() {
int start = 100, end = 999; // 搜索范围
std::vector<int> narcissistic_numbers;
while (start <= end) {
if (is_armstrong_number(start)) {
narcissistic_numbers.push_back(start);
}
start++;
}
for (int number : narcissistic_numbers) {
std::cout << number << " ";
}
std::cout << "
阅读全文