C++求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。求n-m的所有水仙花数,如果没有输出'NO'。
时间: 2024-05-12 20:20:48 浏览: 65
```c
#include<stdio.h>
#include<math.h>
int main()
{
int n,m;
scanf("%d%d",&n,&m);
int i,j,k;
int flag=0;//标志是否有水仙花数
for(i=n;i<=m;i++)
{
j=i/100;//百位
k=i%100;//十位和个位
int sum=j*j*j+(k/10)*(k/10)*(k/10)+(k%10)*(k%10)*(k%10);//计算i的三次方和
if(sum==i)//判断是不是水仙花数
{
printf("%d ",i);
flag=1;//有水仙花数
}
}
if(flag==0)//如果没有水仙花数
printf("NO");
return 0;
}
```
相关问题
求100~999中的水仙花数。若三位数ABC=A3+B3+C3,则称ABC为水仙花数。C++
可以使用三重循环来枚举100~999中的所有三位数,并判断是否为水仙花数。
代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
for (int i = 100; i <= 999; i++) {
int a = i / 100; // 百位数
int b = (i / 10) % 10; // 十位数
int c = i % 10; // 个位数
if (a*a*a + b*b*b + c*c*c == i) {
cout << i << endl;
}
}
return 0;
}
```
输出结果为:
```
153
370
371
407
```
求100---999中的水仙花数(若三位数 abc,满足a3+b3+c3=abc,则称abc为水仙花数,如153,满足 13+53+33=153,所以153为水仙花数。
要编写一个C++程序来找出100到999之间的所有水仙花数,我们可以遍历这个范围内的每个三位数,然后检查它们是否满足水仙花数的条件。水仙花数定义为每个位上的数字立方和等于整个数本身。以下是一个简单的解决方案:
```cpp
#include <iostream>
bool isArmstrongNumber(int num) {
int original_num = num;
int sum = 0;
int temp = num;
// 分解每一位数字并计算其立方
while (temp != 0) {
int digit = temp % 10;
sum += std::pow(digit, 3);
temp /= 10;
}
// 如果原始数等于立方和,那么它是水仙花数
return original_num == sum;
}
int main() {
for (int i = 100; i <= 999; ++i) {
if (isArmstrongNumber(i)) {
std::cout << i << " 是水仙花数.\n";
}
}
return 0;
}
```
这段代码首先定义了一个`isArmstrongNumber`函数,用于检查给定的整数是否是水仙花数。然后在`main`函数中,我们使用一个for循环遍历从100到999的数字,对每个数调用`isArmstrongNumber`进行判断,如果返回`true`,就输出该数。
阅读全文
相关推荐













