第1个回答 2011-12-12
#include "stdio.h"
#include "math.h"
void shuixianhua(int n)
{//水仙花数
int m=3,sum,temp;
if(999<n&&n<10000)m=4;
if(9999<n&&n<100000)m=5;
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;
}
第2个回答 2011-12-12
#include <stdio.h>
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;
}
第3个回答 2011-12-12
#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;
}