写一个函数,判断某一个四位数是不是玫瑰花数(所谓玫瑰花数即四位数各位数字的四次方和恰好等于该数本身,如: 1634 = 1^4 + 6^4 + 3^4 + 4^4)。在主函数中从键盘任意输入一个四位数,调用该函数,判断该数是否为玫瑰花数,若是则输出“yes”,否则输出“no”。
用了最屌丝的一个方法,算出来了 ≡[。。]≡
# include
void rose( int num )
{
int a, b, c, d;
//首先需要判断每个位置上的数是几
a = num/1000;
b = num/100%10;
c = num/10%10;
d = num%10;
//printf( "%d的千位数是%d,百位数是%d,十位数是%d,个位数是%d\n", num, a, b, c, d );
if( a*a*a*a + b*b*b*b + c*c*c*c + d*d*d*d == num )
{
printf( "%d是玫瑰花数\n", num );
}
else
{
printf( "%d不是玫瑰花数\n", num );
}
}
int main( void )
{
int num;
printf( "请输入一个四位数:\n" );
scanf( "%d", &num );
rose( num );
return 0;
}
/*
在VC++6.0中输出的结果是
=====================================
请输入一个四位数:
1634
1634是玫瑰花数
请输入一个四位数:
3256
3256不是玫瑰花数
=====================================
总结:
感觉这是个最为简单粗暴的方法。
*/