不二如是 发表于 2017-5-20 07:39:11

算法14 ◉‿◉ 打印1-999之间所有的水仙花数

本帖最后由 不二如是 于 2017-5-20 07:39 编辑

http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png

按照提示,完成代码,秀秀你的编程能力!

不许看答案,否则打屁屁



程序分析:
所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如: 153 是一个“水仙花数”,因为 153=1 的三次方+ 5 的三次方+ 3 的三次方。        

源代码:
**** Hidden Message *****



○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛

kasim01 发表于 2018-2-23 00:07:37

月引流光 发表于 2018-2-26 10:18:17

学习一下

新手·ing 发表于 2018-3-12 17:39:16

看看

krrred 发表于 2018-3-22 16:14:08

本帖最后由 krrred 于 2018-3-22 16:15 编辑

刚学到水仙花数的例题。来看看大神 的具体思路,谢谢,自己想了好久,头疼死了。
额,我来错地方了。。哈哈。抱歉。

小Gui 发表于 2018-3-25 23:48:35

学习一下

zailushang... 发表于 2018-3-26 16:30:38

>>> for a in range(0,9):
        for b in range(0,9):
                for c in range(0,9):
                        if a*a*a + b*b*b + c*c*c == a*100 + b*10 +c:
                                print("水仙花数是:"+str(a)+str(b)+str(c))

                               
水仙花数是:000
水仙花数是:001
水仙花数是:153
水仙花数是:370
水仙花数是:371
水仙花数是:407
>>>

mu@huo 发表于 2018-3-27 22:38:31

0

夜无眠 发表于 2018-3-30 17:22:07

学习一下

hummerfeng 发表于 2018-4-15 01:02:18

学习

吜丿丶怪 发表于 2018-4-16 16:23:46

   。

dsa159245 发表于 2018-4-29 11:11:49

                        window.onload = function(){
                                var str = '';
                                for(var i = 1; i <= 999;i++){
                                        if(is_ss(i)){
                                                str += i + ' '
                                        }
                                }
                                alert(str);
                               
                                function is_ss(n){
                                        var num = n;
                                        var a = Math.floor(num / 100);
                                        num %= 100;
                                        var b = Math.floor(num / 10);
                                        num %= 10;
                                        var c = num;
                                       
                                        if(n == Math.pow(a,3) + Math.pow(b,3) + Math.pow(c,3)){
                                                return true;
                                        }
                                        return false;
                                }
                        };

waitforlove 发表于 2018-9-22 22:20:45

<!DOCTYPE html>
<html>
<head>
        <title>14</title>
        <script type="text/javascript">
                var lista=new Array();
                for(var i=0;i<10;i++){
                        for(var j=0;j<10;j++){
                                for(var k=0;k<10;k++){
                                        var hua=Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3);
                                        if(hua>0 && hua<1000 && (i*100+j*10+k)==hua){
                                                lista.push(hua);}}}}
                document.write("1-999间的水仙花有:"+lista);

        </script>
</head>
<body>

</body>
</html>

a211827754 发表于 2018-9-23 18:41:26

emm

上帝也幽默 发表于 2018-9-30 23:45:13

看看

S1994 发表于 2018-10-7 16:20:17

答案

凌乱大帅比 发表于 2018-10-9 19:32:36

本帖最后由 凌乱大帅比 于 2018-10-9 19:55 编辑

var break_up = function(n){
        var h,t,b;
        htb = [];
        if(n>=1 && n<=9){
                b = parseInt(n);
                htb.push(b)
        }
        else if(n>=10 && n<=99){
                t = parseInt(n/10);
                b = parseInt(n - t*10);
                htb.push(t,b)
        }
        else if(n>=100 && n<=999){
                h = parseInt(n/100);
                t = parseInt(n/10) - h*10;
                b = parseInt(n) - h*100 - t*10;
                htb.push(h,t,b)
        }
}
for(var i=0;i<200;i++){
        break_up(i);
        console.log(htb);
}

算法部分,一直有bug......{:10_284:} {:10_284:}

目前就给出一个抓取个十百位的数字的fun()吧{:10_264:}

tk101 发表于 2018-10-15 16:07:42

看一下

simble 发表于 2018-10-24 16:22:20

<!DOCTYPE html>
<html>
        <head>
                <meta charset="UTF-8">
                <title>1-999</title>
        </head>
        <body>
        </body>
        <script>
                var arr=[]
                for(var i=0;i<10;i++){
                        for(var j=0;j<10;j++){
                                for(var k=0;k<10;k++){
                                        if((i*i*i+j*j*j+k*k*k)==(i*100+j*10+k)){
                                                var sum = i*100+j*10+k;
                                                arr.push(sum);
                                        }
                                }
                        }
                }
                document.write(arr);
        </script>
</html>

cupbbboom 发表于 2018-12-28 14:20:55

function lifang(n) {
        n = Number(n);
        return n * n * n;
}
function fF() {
        for (var i = 100; i < 1000; i ++) {
                var bw = String(i);
                var sw = String(i);
                var gw = String(i);
                if (i == (lifang(bw) + lifang(sw) + lifang(gw))) {
                        document.write(i + "<br/>");
                }
        }
}
页: [1] 2 3 4
查看完整版本: 算法14 ◉‿◉ 打印1-999之间所有的水仙花数