为函数Html创建表单

时间:2014-01-07 10:40:17

标签: javascript 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技巧不好,我不知道如何创建一个表格,将 n q 输入2个方框,然后点击按钮&#34;显示&#34;我们在第三个框中有结果。

我已尝试过以下代码,但它不起作用:(

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

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

感谢。

3 个答案:

答案 0 :(得分:0)

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

尝试替换:

    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="";

答案 1 :(得分:0)

代码看起来很好,会做你想做的事情。只是有一些,(逗号)而不是;您的代码中的(分号)。改变它们,然后尝试。

在此查看解决方案。

http://jsfiddle.net/JszG2/

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

答案 2 :(得分:0)

以下是使用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>