您的位置:首页 > 编程语言 > C语言/C++

小蚂蚁学习C语言(39)——题目——求一个数字是否是玫瑰花数

2016-02-03 21:30 781 查看
写一个函数,判断某一个四位数是不是玫瑰花数(所谓玫瑰花数即四位数各位数字的四次方和恰好等于该数本身,如: 1634 = 1^4 + 6^4 + 3^4 + 4^4)。在主函数中从键盘任意输入一个四位数,调用该函数,判断该数是否为玫瑰花数,若是则输出“yes”,否则输出“no”。

用了最屌丝的一个方法,算出来了 ≡[。。]≡

# include <stdio.h>

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不是玫瑰花数
=====================================
总结:
感觉这是个最为简单粗暴的方法。
*/


学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言