//
//2013年5月30日17:11:37
//
//作者:小代码
//
//编译器:Codelocks
//
//题目:
//
//判断一个数是否为"水仙花数",所谓"水仙花数"是指这样的一人数:
//其各位数字的立方和等于该数本身。
//例如:371是一个"水仙花数",371=3^3+7^3+1^3.
#include <stdio.h>
#include <stdlib.h>
#include<stdbool.h>
int main()
{
bool IsSan( int in );//判断输入的数字是否为三位的整数
int fun_1029( int in );//判断in是否为水仙花数字
int in;//接收输入的三位数
int out;//判断结果
printf("请输入一个三位整数:\n");
scanf("%d",&in);
while( false == IsSan( in ) )
{
printf("\n你输入的不是三位整数,请重新输入:\n");
scanf("%d",&in);
}
printf("%d\n",fun_1029( in ));
printf("\n\nHello World\n");
system("pause");
return 0;
}
//判断输入的数字是否为三位的整数
bool IsSan( int in )
{
int i = in / 100;
if( 1 <= i && i <= 9 )
{
return true;
}
else
{
return false;
}
}
//判断in是否为水仙花数字
int fun_1029( int in )
{
int bai;//保存百位数字
int shi;//保存十位数字
int ge;//保存个位数字
bai = in / 100;//求百位
shi = ( in - bai * 100 ) / 10;//求十位
ge = in - bai * 100 - shi * 10;//求各位
int temp = bai * bai * bai + shi * shi * shi + ge * ge * ge;//求各位数字的立方和
if( temp == in )//判断并分返回结果
{
return 1;
}
else
{
return 0;
}
}
运行效果: