#include<stdio.h>
#include<math.h>
//编写算法
void fun(int n)
{
int x,y,z,sum=0;//分别用来存放这三位数的各个位数,百位十位个位
x=n/100;
y=n%100/10;
z=n%100%10;
//判断是否是水仙花数;
sum=sum+(pow(x,3)+pow(y,3)+pow(z,3));
if(sum==n)
printf("是水仙花数:\n");
else
printf("不是水仙花数\n");
}
int main()
{
int n;
while(1)
{
printf("请输入一个三位数的整数:\n");
scanf("%d",&n);
fun(n);
}
return 0;
}
题目限定为三位数
输入任意一个数判断是不是水仙花数:这是优化后的
#include<stdio.h>
#include<math.h>
#define M 6
//编写算法
void fun(int n)
{
int s[M],i,sum=0,j,a=n;//分别用来存放这三位数的各个位数,百位十位个位
//如果说输入任意一个数判断是不是水仙花数怎么去求
//把求出来的数放在一个数组在中,应该是逆序存放的
for(i=0;n!=0;i++)
{
s[i]=n%10;
n=n/10;
}
//判断是否是水仙花数;
for(j=0;j<i;j++)
sum=sum+pow(s[j],3);
if(sum==a)
printf("是水仙花数:\n");
else
printf("不是水仙花数\n");
}
int main()
{
int n;
while(1)
{
printf("请输入一个三位数的整数:\n");
scanf("%d",&n);
fun(n);
}
return 0;
}