关于四叶玫瑰花数的问题

1.什么是四叶玫瑰花数

一个四位正整数等于其各位数字的四次方之和

2.题目实现

如下例题:

请找出所有的玫瑰花数,并从小到大输出。

简单的思路:

既然是用到了各位数字,那么就需要将每位数字单独出来进行计算,玫瑰花数固定为四位,因此只需要设四个变量即可。

因为知道需要判断的数字数量,所以直接使用for循环即可。

要算四次方,因此要调用函数。

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

本题重点是如何单独得到各位数字。

首先a是个位;

b先除10,去掉原个位,再求余,得到十位数字;

c与b思路相同;

d需要得到最高位,直接除1000就行,比较方便;

3.运行结果

结果正确。 


版权声明:本文为qq_63533526原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。