c++“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33。要求编写一个判断水仙花数的函数,在主函数调用该函数判断某个数是否为水仙花数并在主函数中输出所有的水仙花数
时间: 2024-02-10 08:10:28 浏览: 100
好的,以下是 C++ 的代码实现:
```cpp
#include <iostream>
using namespace std;
bool is_narcissistic_number(int num) {
/*
判断一个三位数是否为水仙花数
*/
int digit1 = num / 100; // 百位数
int digit2 = num % 100 / 10; // 十位数
int digit3 = num % 10; // 个位数
return num == digit1 * digit1 * digit1 + digit2 * digit2 * digit2 + digit3 * digit3 * digit3;
}
int main() {
// 输出所有的水仙花数
for (int i = 100; i < 1000; i++) {
if (is_narcissistic_number(i)) {
cout << i << endl;
}
}
return 0;
}
```
你可以运行这段代码查看输出结果。
相关问题
设计C++程序:输出100到1000以内是“水仙花数”的所有三位数。水仙花数是指三位数的各位数字的立方和等于这个三位数本身。例如:153=111+555+333
以下是C程序的实现:
```c
#include <stdio.h>
int main()
{
int i, j, k, n;
for(n=100; n<=999; n++)
{
i = n / 100; // 获取百位数
j = n / 10 % 10; // 获取十位数
k = n % 10; // 获取个位数
if(n == i*i*i + j*j*j + k*k*k) // 判断是否为水仙花数
{
printf("%d\n", n); // 输出水仙花数
}
}
return 0;
}
```
希望对您有所帮助。
用c++完成:输出所有的“水仙花数”,水仙花数是指一个三位数,其各位数字立方和等于其本身。
Sure, 我可以很轻松地给您展示如何用C语言输出所有水仙花数:
#include <stdio.h>
#include <math.h>
// 定义函数,用于判断一个数是否是水仙花数
int isArmstrong(int num) {
int temp = num;
int sum = 0;
int n = 0;
while (temp > 0) {
temp /= 10;
n++;
}
temp = num;
while (temp > 0) {
int remainder = temp % 10;
sum += pow(remainder, n);
temp /= 10;
}
return sum == num;
}
int main() {
for (int i = 100; i < 1000; i++) {
if (isArmstrong(i)) {
printf("%d ", i);
}
}
return 0;
}
希望这可以帮到您!
阅读全文