C语言:编写函数fun(n),n为一个三位自然数,判断n是否为水仙花数,若是返回1,否则返回0。

C语言:编写函数fun(n),n为一个三位自然数,判断n是否为水仙花数,若是返回1,否则返回0。在主函数中输入一个三位自然数,调用函数fun(num),并输出判断结果。水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)

#include<stdio.h>
int fun(int n)
{int a,b,c;
 a=n/100;
 b=n/10%10;
 c=n%10;
 return n==a*a*a+b*b*b+c*c*c;
}
int main()
{int n;
 scanf("%d",&n);
 printf("%s\n",fun(n)?"Yes":"No");
 return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-30
我以前写过一个
public static int sxh() //水仙花数
{
int ge,shi,bai,total,mount=0;
system.out.println("满足条件的水仙花数:");
for(int k=100;k<1000;k++)
{
bai=k/100;
shi=k%100/10;
ge=k%10;
total=(bai*bai*bai)+(shi*shi*shi)+(ge*ge*ge);
if(total==k)
{
system.out.print(" "+k);
mount++;
}
}
return mount;
}
n久没动过c语言了,也只能帮到这了
第2个回答  2018-04-17
#include<Stdio.h>
#include<math.h>
int shuixianhua(int i);
int main()
{
 int i,flag;
 scanf("%d",&i);
 printf("%d",shuixianhua(i));
 
 } 
int shuixianhua(int i)
{
 int n1,n2,n3,flag;
 n1=i/100%10;
 n2=i/10%10;
 n3=i/1%10;
  
 if(i==(int)pow(n1,3)+(int)pow(n2,3)+(int)pow(n3,3))
 { 
  printf("%d = %d^3 + %d^3 + %d^3.\n",i,n1,n2,n3);
  return 1;
 }
 else
  return 0;
}

相似回答