0
点赞
收藏
分享

微信扫一扫

【例5-10】循环结构综合应用(3)

自幂数是指一个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;
		b = n / 100 % 10;
		c = n / 10 % 10;
		d = n % 10;
		if (pow(a, 4) + pow(b, 4) + pow(c, 4) + pow(d, 4) == n)
			printf("%d\n", n);
		i++;
	}

	return 0;
}

//方法三:使用do-while 循环

#include<stdio.h>
#include<math.h>
int main()
{
	int n, a, b, c, d, i = 1000;
	do
	{
		n = i;
		a = n / 1000;
		b = n / 100 % 10;
		c = n / 10 % 10;
		d = n % 10;
		if (pow(a, 4) + pow(b, 4) + pow(c, 4) + pow(d, 4) == n)
			printf("%d\n", n);
		i++;
	} while (i <= 9999);

	return 0;
}

 

举报

相关推荐

0 条评论