水仙花数是一个三位数,其各位数的立方和等于它本身。
今天我们就要写一个小程序判断一个数是否为水仙花数,那我们就先要判断该数字是否为一个三位数,然后在判断其各位数的立方和是否等于它本身。
下面就是实现代码:
//制作人:万迁
#include<stdio.h>
#include<math.h>
//后面要用幂函数
int main()
{
int number,bai,shi,ge;
//定义变量,number是用户输入的数字, bai,shi,ge分别表示百分位,十分位,个位
printf("输入一个三位数\n");
scanf("%d",&number);
//用户输入被判断个数
bai=number/100;
//求出百分位,十分位,个位
shi=number%100/10;
ge=number%100%10;
if(bai==0||bai>9)
//判断是否为三位数 ,若是则继续,否便结束程序并打印出“输入数据错误”
//这里我是利用百分位上的数来进行判断,如果大于9则是四位数,如果小于0
//则是两位数或一位数。其实我们也可以直接这样判断
//if(number>999||numer<100)
{
printf("输入数据错误\n");
}
else if(number==pow(bai,3)+pow(shi,3)+pow(ge,3))
//判断是否为水仙花数
{
printf("%d是水花仙数",number);
//是,打印“是水仙花数 ”
}
else printf("%d不是水花仙数",number);
//不是,打印“不是水仙花数 ”
}