zoukankan      html  css  js  c++  java
  • 阿姆斯特朗数

    本来周五在公司,也没啥事情干,在群里看见别人发的一个题目,身为一个前端菜鸡就写了一下,不喜勿喷....

    实现输入一个数,当在一个可变范围内时,会返回输入数字最近的一个阿姆斯特朗数,并且可以输出范围内所有的阿姆斯特朗数。 

    题目如上,直接上代码...

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>阿姆斯特朗数</title>
    </head>
    
    <body>
        <div id="main">
            输入正整数:<input type="text" id="enter" value="" onchange="init._init_interpolation(this.value)"/><br>
            数值范围start:<input type="text" id="start" value="1" onchange="init._init_range(this.value)"/><br>
            数值范围end:<input type="text" id="end" value="1000" onchange="init._init_range(this.value)"/><br>
            最近数:<input type="text" id="recent" value="" readonly/><br>
            查看阿姆斯特朗数:<button onclick="init._init_alert()">点击查看</button>
        </div>
    </body>
    </html>
    <script>
        let global_params = {
            _data: [],
            _arrs: [],
            _reg: /^[1-9]d*$/,
            _state: false
        }
        console.log(global_params._reg.test(1.2))
        var init = {
            _init_interpolation: function(s){
                init_Auxiliary_Method._test(s);
                let _s = parseInt(s);
                if(global_params._state)global_params._data = global_params._arrs;
                global_params._state = true;
                global_params._arrs = global_params._data.concat();
                global_params._data.push(_s);
                global_params._data.sort(init_Auxiliary_Method._sortNumber);
                let index = global_params._data.indexOf(_s);
                let recent;
                if(index == 0){
                recent = global_params._data[index+1];
                }else{
                if(global_params._data[index]-global_params._data[index-1]<global_params._data[index+1]-global_params._data[index]){
                  recent = global_params._data[index-1];
                }else{
                  recent = global_params._data[index+1];
                }
                }
                document.getElementById("recent").value = recent;
            },
            _init_crossin: function(n){
                let a = n + "";
                let arr = a.split("");
                let data =[];
                init_Auxiliary_Method._add(data,arr);
                for (let i = 0; i < 10; i++) {
                    var sum1 = data.reduce(init_Auxiliary_Method._getSum, 0)
                };
                if(n == sum1)global_params._data.push(sum1)
            },
            _init_range: function(state){
                init_Auxiliary_Method._test(state);
                let stare = document.getElementById("start").value;
                let end = document.getElementById("end").value;
                for(let j=stare;j<end;j++){
                    if(stare<end)init._init_crossin(j);
                }
            },
            _init_alert: function(){
                if(global_params._arrs !== [])alert(global_params._arrs);
            }
        }
    
        var init_Auxiliary_Method = {                                                   //辅助方法
            _add: function(data,arr){                                            //数字拆分
                for(let i=0;i<arr.length;i++){
                    data.push(Math.pow(parseInt(arr[i]),3))
                }
            },
            _getSum: function(preValue,curValue,index,array){
                return preValue += curValue;
            },
            _sortNumber: function(a,b){                                     //排序
                return a - b;
            },
            _test: function(state){
                if(!global_params._reg.test(parseFloat(state))){
                    alert("请输入正整数!");
                    return false;
                }
            }
        }
        window.onload = function(){
            init._init_range(1);
        }
    </script>
    	
    

      

    现在输入一个正整数,选择一个范围,会返回所有的阿姆斯特朗数,并且返回最近的阿姆斯特朗数。

    有什么不对的希望大家指正....

  • 相关阅读:
    [Android应用开发] 01.快速入门
    [wordpress使用]004_导入多媒体
    【Python3爬虫】使用异步协程编写爬虫
    【Python3爬虫】斗鱼弹幕爬虫
    Pycharm2018永久破解的办法
    【Python3爬虫】大众点评爬虫(破解CSS反爬)
    【Python3爬虫】用Python发送天气预报邮件
    【Python3爬虫】猫眼电影爬虫(破解字符集反爬)
    【Python3爬虫】微博用户爬虫
    【Python3爬虫】拉勾网爬虫
  • 原文地址:https://www.cnblogs.com/sk-3/p/7291931.html
Copyright © 2011-2022 走看看