我们依旧是先分析:
1.是一个四位数(abcd)
2.每个数字的四次方和等于本身这个数(aaaa+bbbb+cccc+dddd==i)
**
现在关键就是拿到个十百千各个位置上面的数字信息就是本题的难点,下面我们一步一步来
举个例子
假如一个两位数 98 我们要拿到 数字8 应该怎么做?
i=98%10;
这里我偷懒一下不写全部代码了,知道意思就行
如果想拿到数字9应该怎么做
i=98/10;
这样是不是拿到了数字9
同样百位和千位大家都可以试着想一下
**
回归这道题目
四位数就是[1000,10000)就是在这区间里面数
话不多说上代码
#include <stdio.h>
void main(){
int i,a,b,c,d;//定义初始化变量
for(i=1000;i<10000;i++){//循环四位数
a=i%10;//取到个位数
b=i/10%10;//取到十位数
c=i/100%10;//取到百位数
d=i/1000;//取到千位数
if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==i){
printf("玫瑰花数=%d\n",i);
}
}
}
完成!告辞