C++语言:输入一个三位整数,计算各位数字的立方和,并输出
时间: 2024-10-16 22:06:55 浏览: 7
在C++中,你可以通过以下步骤来实现这个功能:
```cpp
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入一个三位整数: ";
cin >> num; // 输入三位整数
// 确保数字是三位数
if (num < 100 || num > 999) {
cerr << "输入错误,数字必须是三位数。\n";
return 1;
}
int cubeSum = pow(num / 100, 3) + pow((num % 100) / 10, 3) + pow(num % 10, 3); // 计算每位数字的立方并求和
cout << "各位数字的立方和为: " << cubeSum << endl;
return 0;
}
```
在这个程序里,首先从用户那里获取输入,然后检查是否是三位数。接着,将数字拆分为百位、十位和个位,分别计算它们的立方,并加起来得到结果。`pow`函数用于计算幂。
相关问题
C++编程计算求“水仙花数”。所谓“水仙花数”,是指一个三位数,各位数字立方和等于该数本身
在C++中,计算"水仙花数"可以编写一个简单的循环程序,遍历所有三位数,并验证它们是否满足条件,即各位数字的三次方之和等于原数。以下是代码实现的一个示例:
```cpp
#include <iostream>
using namespace std;
bool is narcissistic(int n) {
int sum = 0;
int originalNum = n; // 将原始数存储以便恢复
// 分离每位数字并取立方
while (originalNum != 0) {
int digit = originalNum % 10;
sum += pow(digit, 3); // 加上立方后的数字
originalNum /= 10;
}
// 检查结果是否相等
return sum == n;
}
int main() {
int start = 100, end = 999; // 只考虑三位数
cout << "Searching for narcissistic numbers between " << start << " and " << end << ":" << endl;
for (int i = start; i <= end; ++i) {
if (is_narcissistic(i)) {
cout << i << " is a Narcissistic Number.\n";
}
}
return 0;
}
```
在这个程序中,`is_narcissistic` 函数接收一个整数 `n`,并通过将每个位上的数字取出并计算其立方值来判断是否为水仙花数。如果所有位上的立方和等于原始数,就返回true,表示它是水仙花数。
C++编写一个函数,判断某一个数是否为水仙花数。(水仙花数:一个三位数的各位数字的立方和等于该数本身)
以下是C++代码实现:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
bool isNarcissisticNumber(int num) {
int sum = 0;
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
return sum == num;
}
int main() {
int num;
cout << "请输入一个三位数: ";
cin >> num;
if (isNarcissisticNumber(num)) {
cout << num << "是水仙花数" << endl;
} else {
cout << num << "不是水仙花数" << endl;
}
return 0;
}
```
首先定义一个 `isNarcissisticNumber` 函数,接收一个整数参数 `num`,用于判断该数是否为水仙花数。在函数中,我们使用循环依次取出该数的每一位数字,计算各位数字的立方和,最后将计算结果与原数比较,如果相等则返回 `true`,否则返回 `false`。
在 `main` 函数中,我们首先从用户输入中获取一个三位数,然后调用 `isNarcissisticNumber` 函数进行判断,最后输出判断结果。
阅读全文