前言
马上就要熄灯了,写个水仙花数,写完就去洗澡。
题目
求一个数是不是水仙花数或输出某一范围[n,m]内所有的水仙花数。
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
输入格式:
在一行输入一个数
输出格式:
要求输出YES或NO
输入样例:
在这里给出一组输入。例如:
370
输出样例:
在这里给出相应的输出。例如:
YES
实现
求一个数是不是水仙花数
#include <iostream>
#include "stdlib.h"
#include "math.h"
using namespace std;
int main()
{
cout<<"请输入一个三位的数字"<<endl;
int n;
scanf("%d",&n);
int hundred=n/100;
int ten=n%100/10;
int one=n%10;
cout<<((pow(one,3)+pow(ten,3)+pow(hundred,3))==n?"YES":"NO");
return 0;
}
测试结果:
输出某一范围[n,m]内所有的水仙花数。
#include <iostream>
#include "stdlib.h"
#include "math.h"
using namespace std;
int main()
{
cout<<"请输入范围[n,m]"<<endl;
int n;
int m;
scanf("%d %d",&n,&m);
do
{
int hundred=n/100;
int ten=n%100/10;
int one=n%10;
if (pow(one,3)+pow(ten,3)+pow(hundred,3)==n)
{
cout<<n<<endl;
}
n++;
if (n>m)
{
break;
}
} while (1);
return 0;
}
测试结果:
Python实现