为函数 HTML 创建表单



这是我的问题,希望得到一些支持。

这是我的职能。

function show(n,q)
{
  for(j=1;j<=n;j++)
  {
    s=j.toString().length;
    t=0;
    for(i=s-1;i>=0;i--)
    {
      t+=Math.pow((Math.floor(j/Math.pow(10,i))%10),q);
    }
    if(t==j){document.write(t+ " ");}
    else{document.write("");}
  }
}
show(1000,3);

使用两个输入:数字 n 和指数 q,它将求解所有小于 n 的数字,其数字的所有 q 指数之和等于自身。例如:q=3,n=200,我们有数字 153,因为:1^3 + 5^3 + 3^3 = 153

这个函数还可以,但由于我的 JavaScript 技能不好,我不知道如何创建一个表单,将 nq 输入到 2 个框中,然后单击按钮"显示"我们在第三个框中有结果。

我已经尝试了下面的代码,但它不起作用:(

<input id='number' type='text' />
<input id='exp' type='text' />
<button onclick='javascript:show()'>Show</button>
<div id='res' style='width:100%;height:200px'></div>
<script>
  function show() {
    var n=document.getElementById('number').value,
        var q=document.getElementById('exp').value,
          out=document.getElementById('res'),
            out.innerHTML="";
      for(j=1;j<=n;j++)
      {
        s=j.toString().length;
        t=0;
        for(i=s-1;i>=0;i--)
        {
          t+=Math.pow((Math.floor(j/Math.pow(10,i))%10),q);
        }
        if(t==j){
          out.innerHTML+=t+ " ";
        }
        else{
          out.innerHTML+="";
        }
      }
    }
</script>

另外,我想自己做,你们能告诉我在哪里可以找到这个问题的指南吗?

谢谢。

您的代码存在一些标点符号问题。

尝试替换:

    var n=document.getElementById('number').value,
    var q=document.getElementById('exp').value,
      out=document.getElementById('res'),
        out.innerHTML="";

    var n=document.getElementById('number').value,
        q=document.getElementById('exp').value,
        out=document.getElementById('res');
    out.innerHTML="";

代码看起来不错,可以做你正在尝试做的事情。只是有一些 , (逗号) 而不是 ;(分号)在代码中。更改它们,然后尝试。

在此处查看解决方案。

http://jsfiddle.net/JszG2/

var n=document.getElementById('number').value;
var q=document.getElementById('exp').value;
out=document.getElementById('res');

以下是使用 JQuery 的解决方案。

<script>
function show() {
            var num = parseInt($('#number').val());
            var exp = parseInt($('#exp').val());
            out = $('#res');
            var num = document.getElementById('number').value;
            var exp = document.getElementById('exp').value;
            out = document.getElementById('res');
            out.innerHTML = "";
            for (p = 1; p <= num; p++) {
                q = p.toString().length;
                v = 0;
                for (i = q - 1; i >= 0; i--) {
                    v = v+ Math.pow((Math.floor(p / Math.pow(10, i)) % 10), exp);
                }
                if (v == p) {
                    out.innerHTML += v + " ";
                }
                else {
                    out.innerHTML += "";
                }
            }
        }
</script>

最新更新