c++ 三位水仙花数是指一个三位数,它得每个位上的数字的3次幂之和等于它本身。例如1^3+5^3+3^3=153。编写一个函数,打印所有3位的水仙花数
时间: 2023-12-23 07:04:56 浏览: 70
以下是C语言实现的代码:
```c
#include <stdio.h>
int main() {
int i, j, k, num;
for (i = 1; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
num = i * 100 + j * 10 + k;
if (num == i * i * i + j * j * j + k * k * k) {
printf("%d\n", num);
}
}
}
}
return 0;
}
```
首先使用三重循环遍历所有可能的三位数,然后判断每个数是否为水仙花数,即判断它的每一位数字的3次幂之和是否等于它本身。如果是,就打印出来。
相关问题
用C++写出一段代码,计算输出所有三位数中的水仙花数。水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:13 + 53 + 33 = 153)。
以下是用C++语言编写的计算输出所有三位数中的水仙花数的代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
for(int i = 100; i < 1000; i++)
{
int sum = pow(i / 100, 3) + pow(i / 10 % 10, 3) + pow(i % 10, 3);
if(sum == i)
{
cout << i << " ";
}
}
return 0;
}
```
代码中,我们使用了 `for` 循环遍历所有三位数。在循环内部,我们使用 `pow()` 函数计算出每个位上的数字的三次幂之和,并将其存储在 `sum` 变量中。如果 `sum` 等于这个三位数本身,就说明这个数是水仙花数,将其输出即可。
用C++语言写一个完整代码,输入一个数, 编写一个函数判断一个数是否为水仙花数 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
```cpp
#include <iostream>
#include <cmath>
// 函数声明,用于判断是否为水仙花数
bool isNarcissistic(int number);
int main() {
int number;
std::cout << "请输入一个三位数: ";
std::cin >> number;
// 调用函数并输出结果
if (isNarcissistic(number)) {
std::cout << number << " 是一个水仙花数。" << std::endl;
} else {
std::cout << number << " 不是一个水仙花数。" << std::endl;
}
return 0;
}
// 函数定义,判断一个数是否为水仙花数
bool isNarcissistic(int number) {
if (number < 100 || number > 999) {
return false; // 不是三位数
}
int originalNumber = number;
int sum = 0;
while (number > 0) {
int digit = number % 10; // 获取最低位的数字
sum += std::pow(digit, 3); // 累加每个位上数字的三次幂
number /= 10; // 移除最低位的数字
}
return sum == originalNumber; // 如果和等于原始数,则是水仙花数
}
```
这段代码定义了一个函数 `isNarcissistic`,用于判断输入的三位数是否为水仙花数。主函数 `main` 负责接收用户输入,并使用 `isNarcissistic` 函数来判断结果,并输出相应的信息。
阅读全文