在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);
复制代码
|