阿姆斯特朗数用c++写的简单点
时间: 2024-11-06 07:15:09 浏览: 10
阿姆斯特朗数是指每个位上的数字的立方和等于原数本身的数,比如153(1^3 + 5^3 + 3^3 = 153)。在C++中,我们可以编写一个简单的函数来检查一个三位数是否是阿姆斯特朗数。下面是一个例子:
```cpp
#include <iostream>
bool isArmstrongNumber(int num) {
int original_num, sum = 0, remainder;
// 对于三位数的情况
while (num > 0) {
remainder = num % 10;
sum += pow(remainder, 3); // 使用pow计算立方
num /= 10;
}
// 判断原始数值和求和后的结果是否相等
return sum == original_num;
}
int main() {
int input;
std::cout << "请输入一个三位数: ";
std::cin >> input;
if (isArmstrongNumber(input))
std::cout << input << " 是阿姆斯特朗数";
else
std::cout << input << " 不是阿姆斯特朗数";
return 0;
}
相关问题
输入描述: 一个整数n。 输出描述: 小于或等于n的所有阿姆斯特朗数。用c++写,写简单点
在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;
}
【五位阿姆斯特朗数】五位阿姆斯特朗数是一个五位数,该数本身等于其各数位上数字的5次方之和, 如54748=5的5次方+4的5次方+7的5次方+ 4的5次方+ 8的5次方。 请编写程序实现以下功能:用户输入两个五位数a,b(b>a),程序计算并输出[a,b]范围内的五位阿姆斯特朗数。c++实现
好的,以下是 C++ 代码实现:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
bool isArmstrong(int num) {
int sum = 0;
int temp = num;
while (temp > 0) {
int digit = temp % 10;
sum += pow(digit, 5);
temp /= 10;
}
if (num == sum) {
return true;
}
else {
return false;
}
}
int main() {
int a, b;
cout << "请输入a:";
cin >> a;
cout << "请输入b:";
cin >> b;
cout << a << "到" << b << "范围内的五位阿姆斯特朗数为:" << endl;
for (int i=a; i<=b; i++) {
if (isArmstrong(i)) {
cout << i << endl;
}
}
return 0;
}
```
运行程序后,输入a和b的值,程序会输出[a,b]范围内的五位阿姆斯特朗数。
阅读全文