用C语言求出0~999之间的所有“水仙花数”并输出

版权声明:[email protected] https://blog.csdn.net/qq_271334644/article/details/83002843

运行环境: win10  vs2013

“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。 


在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。 
例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数: 
153 = 1^3 + 5^3 + 3^3。 
370 = 3^3 + 7^3 + 0^3。 
371 = 3^3 + 7^3 + 1^3。 
407 = 4^3 + 0^3 + 7^3。 
也就是说我们可以引进三个变量a,b,c分别作为水仙花束的百位,十位和个位,算法也很简单,我们只需要判断a*100+b*10+c=a*a*a+b*b*b+c*c*c,如果在0~999之中的任何三位数满足该条件输出即可!

程序实现如下:

运行结果如下:

#include<stdio.h>
#include<stdlib.h>
int main(){
	int a, b, c;
	for (a = 1; a < 10;a++)
	for (b = 0; b < 10;b++)
	for (c = 0; c < 10; c++){
		if (a * 100 + b * 10 + c == a*a*a + b*b*b + c*c*c){
			printf("%d%d%d\n", a, b, c);
		}
	}
	system("pause");
	return 0;

}

猜你喜欢

转载自blog.csdn.net/qq_271334644/article/details/83002843