在一个前端群里看到的一个练习,获取阿姆斯特朗数

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

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

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

<!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>

  

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

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

时间: 2024-08-06 11:22:48

在一个前端群里看到的一个练习,获取阿姆斯特朗数的相关文章

C++一个项目里有两个CPP文件,想在一个CPP文件里调用另一个CPP文件的计算结果,怎么实现啊?

把1.cpp和2.cpp放到同一目录下,例如:1.cpp 代码如下#include <iostream> int main(){ void ChangeFunction(int* input, int n); void PrintData(int* input, int n); int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; PrintData(a, 10); ChangeFunction(a, 10); PrintData(a, 10); return

在翻译群里看到的一个句子的翻译

the practice of claiming a reduction in co2 emissions for the product or s service being considered based on the prevention or removal of ghg emissions in a process unrelated to the product being considered.基于非生产过程中温室气体排放的预防和移除措施,我们发布“降低产品与服务相关的(温室气体

关于在一个新页面里控制另一个页面的问题

1 cookie&定时器 btn.onclick = function(){    setCookie('need_refresh', 'yes');}setInterval(function(){    var flag = getCookie('need_refresh');    if(flag === 'yes'){        a();        removeCookie('need_refresh');   }}, 100); 原文地址:https://www.cnblogs.

如何在一个div标签里显示出另一个网页? &lt;iframe src=&quot; http://www.baidu.com &quot; width=&quot;800px&quot; height=&quot;200px&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot;&gt; &lt;/iframe&gt;

如何在一个div标签里显示出另一个网页? 用在div里用iframe,就像下面的代码 <iframe src=" http://www.baidu.com " width="800px" height="200px" scrolling="no" frameborder="0"> </iframe>

C语言学习_C如何在一个文件里调用另一个源文件中的函数

问题 C如何在一个文件里调用另一个源文件中的函数,如题. 解决办法 当程序大了代码多了之后,想模块化开发,不同文件中存一点,是很好的解决办法,那我们如何做才能让各个文件中的代码协同工作呢?我们知道,main函数是程序入口,我们希望把不同的功能写在不同的函数中,并把这些函数统一放到另外一个文件里,以便main函数显得太长,main函数可以在用到某方法的时候调用来处理.为了实现这个步骤,我们这样做.首先定义一个c代码的头文件,如function.h,在里面声明将要实现的函数,如int add(int

var和不适用var的区别(在一个事件中想使用另一个事件里的变量)

在学习jq时,在一个事件中想使用另一个事件里的变量时,发现了使用和不使用var的区别: 在function中,加上var就会是局部变量:不加上var就会是全局变量 html代码: <body> <input type="button" value="点击"> <input type="button" value="再点击"> </body> js代码: var a; var b;

群里分享的react的收藏一下!今日周末,改了个表单验证然后无所事事了!

今日周末,改了个表单验证然后无所事事了,然后把昨天群里分享的react的收藏一下尽管现在还在研究angular和nodeJs毕竟刚刚开始用有点不熟...没准以后会研究一下react毕竟看着下面这张图还是觉得有点欢乐的 现在最热门的前端框架,毫无疑问是 React . 上周,基于 React 的 React Native 发布,结果一天之内,就获得了 5000 颗星,受瞩目程度可见一斑. React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,

Vue 脱坑记 - 查漏补缺(汇总下群里高频询问的xxx及给出不靠谱的解决方案)

前言 发现群里有些问题的提问重复率太高了,每次都去回答,回答的贼烦.这里做一个大体的汇总,废话不多说,直接开始给出方案,不是手把手..若是连问题和解决都看不懂的..应该去补充下基础知识 问题汇总 Q:安装超时(install timeout) 方案有这么些: cnpm : 国内对npm的镜像版本 /* cnpm website: https://npm.taobao.org/ */ npm install -g cnpm --registry=https://registry.npm.taoba

python学习总结---学习交流群里的问题总结

连续添加数据到明细: def onchange_product_id(self, cr, uid,ids, product_id,line_id, context=None): result={} if product_id: sql="select product_id, sum (qty) qty,lot_id ,max(in_date) in_date ,location_id from stock_quant where product_id=%d GROUP by product_id