C语言:写一个判断水仙花数的函数,在主函数中输入一个3位的整数,输出其是否是水仙花数的信息。

2025-03-10 00:26:03
推荐回答(4个)
回答1:

#include
int isflower(int x) //是 返回1,不是返回0.
{
if(x<100 || x>999) //不是三位数
{
printf("Input error");
return 0;
}
int a,b,c;
a = x%10; // 个位上的数
b =x/10%10; //十位上的数
c = x/100; //百位上的数
if(a*a*a + b*b*b + c*c*c == x)
{
return 1;
}
return 0;
}
int main()
{
int n;
scanf("%d",&n);
if(isflower(n))
{
printf("yes");
}
else
{
printf("no");
}
return 0;
}

回答2:

#include "stdio.h"
#include "math.h"

void shuixianhua(int n)
{//水仙花数
int m=3,sum,temp;

if(999 if(9999 temp=n;
sum=0;
while (temp)
{
sum+=(int)pow(temp%10,m);
temp/=10;
}

if (sum==n)
printf("是水仙花数\n");
else printf("不是水仙花数\n");
}

int main()
{
int n;
printf("输入n:");
scanf("%d",&n);

shuixianhua(n);

return 0;
}

回答3:

#include
int main(void)
{
int shuixianhua;
int tmp = 0;
scanf("%d", &shuixianhua);
if (shuixianhua >= 100 && shuixianhua < 1000)
{
tmp = (shuixianhua / 100) * (shuixianhua /100) *(shuixianhua / 100);
tmp += ((shuixianhua % 100) /10)*((shuixianhua % 100) /10)*((shuixianhua % 100) /10);
tmp += (shuixianhua % 10)*(shuixianhua % 10)*(shuixianhua % 10);
if (tmp == shuixianhua)
{
printf("This is a shuixianhua\n");
}
else
{
printf("This isn't a shuuixianhua\n");
}
}
else
{
printf("what's your inputing is wrong\n");
}
return 0;
}

回答4:

#include "stdio.h"
int isshui(int n)
{
int g,s,b;
g=n%10;
b=n/100;
s=(n/10)%10;
if(n==g*g*g+s*s*s+b*b*b)
return 1;
else
return 0;
}
int main(int argc, char* argv[])
{
int n;
scanf("%d",&n);
if(isshui(n))
printf("%d is shuixianhuashu.\n",n);
else
printf("%d is not shuixianhuashu.\n",n);
return 0;
}