输入描述: 一个整数n。 输出描述: 小于或等于n的所有阿姆斯特朗数。用c++写,写简单点
时间: 2024-11-07 22:13:10 浏览: 6
在C++中,为了输出所有小于或等于给定整数n的所有阿姆斯特朗数,可以稍微扩展之前的方法。这里有一个简单版本的代码,它会生成并打印出所有的阿姆斯特朗数:
```cpp
#include <iostream>
#include <vector>
#include <cmath>
std::vector<int> find ArmstrongNumbers(int n) {
std::vector<int> armstrongs;
for (int i = 1; i <= n; ++i) {
int sum = 0, temp = i;
while (temp > 0) {
int digit = temp % 10;
sum += std::pow(digit, 3);
temp /= 10;
}
if (sum == i) { // 如果sum等于i,说明是阿姆斯特朗数
armstrongs.push_back(i);
}
}
return armstrongs;
}
int main() {
int n;
std::cout << "请输入一个整数: ";
std::cin >> n;
std::vector<int> result = findArmstrongNumbers(n);
std::cout << "小于或等于" << n << "的所有阿姆斯特朗数是: ";
for (const auto &num : result) {
std::cout << num << " ";
}
std::cout << "\n";
return 0;
}
阅读全文