自幂数是指一个n位整数,它的每个位上的数字的n次幂之和等于它本身
如:n = 4时, 1^4 + 6^4 + 3^4 + 4^4 = 1634
//当n = 4时,自幂数被称为玫瑰花数,编程输出1000~9999内的所有玫瑰花数。
//方法一:使用for 循环
#include<stdio.h>
#include<math.h> //使用了求x^y的值的pow函数,需加上math.h头文件
int main()
{
int n, a, b, c, d, i; //a^4 + b^4 + c^4 + d^4 = n
for (i = 1000; i <= 9999; i++)
{
n = i; //设n为1000~9999范围内的4位整数
a = n / 1000; //1000位
b = n / 100 % 10; //100位
c = n / 10 % 10; //10位
d = n % 10; //个位
if (pow(a, 4) + pow(b, 4) + pow(c, 4) + pow(d, 4) == n)
printf("%d\n", n);
}
return 0;
}
//方法二:使用while 循环
#include<stdio.h>
#include<math.h>
int main()
{
int n, a, b, c, d, i = 1000;
while (i <= 9999)
{
n = i;
a = n / 1000