在c语言中,讲到算法,其中有个问题是求三位数的““水仙花数”,那么什么是“水仙花数”呢?
水仙花数是 是一个n(>=3)位数字的数, 它等于每个数字的n次幂之和. 例如, 153是一个水仙花数, 153=1*1*1+5*5*5+3*3*3;
例1,c语言求三位数的小仙花数。
- #include
- main()
- /*
- * 三位数的求法,用3个for循环就可以了;
- * 153是一个水仙花数, 153=1*1*1+5*5*5+3*3*3;
- */
- {
- int a,b,c;
- for(a=0;a<=9;a++)
- {
- for(b=0;b<=9;b++)
- {
- for(c=0;c<=9;c++)
- {
- //下面这个判断是实现的主要算法
- if(a*a*a + b*b*b + c*c*c == 100*a + 10*b + c)
- { /// bbs.it-home.org
- printf("结果为:%d", 100*a + 10*b + c);
- }
- }
- }
- }
- }
例2,一个php求水仙花数的例子。
- $a = array();
- for ($i=0;$i<=9;$i++)
- {
- for ($j=0;$j<=9;$j++)
- {
- for ($m=0;$m<=9;$m++)
- {
- if ($i*$i*$i + $j*$j*$j + $m*$m*$m == 100*$i + 10*$j +$m)
- {
- $a[] = 100*$i + 10*$j +$m;
- }
- }
- }
- }
- print_r($a);
|