【发布时间】:2018-03-25 04:17:32
【问题描述】:
我的目标是创建一个程序来发现:
- T(P(n)):直到n的所有数字的数字的乘积之和。例如,T(p(5))= p(1)+p(2)+p(3)+p(4)+p(5),其中 p 是计算所有非零数字乘积的函数一个整数。
- T(S(n)):直到 n 的所有整数的总和,使用 n*(n+1)/2 公式非常简单
- T(D(n)):直到 n 的所有整数的所有数字的总和。
我已尝试完成前 2 部分,如 codepen 链接所示:https://codepen.io/anon/pen/LdjveQ。 Javascript如下所示:
function result() {
var take = document.getElementById("number").value;
return eval(take.replace(/(\d)(?=\d)/g, '$1+'));
}
function answer() {
document.getElementById('resultfinal').innerHTML = result();
}
function result2() {
var sake = document.getElementById("integers").value;
var mult = (sake*(sake+1));
return eval(mult/2);
}
function answer2() {
document.getElementById('sumofn').innerHTML = result2();
}
我不知道:
- T(P(n)):如何处理将所有大于 0 但小于 n 的整数的 p(n) 相加的方面。
- T(D(n)):为什么 n(n+1)/2 公式会产生错误的结果
- T(S(n)):我应该如何处理 T(D(n))
【问题讨论】:
-
尝试不使用
eval,使用eval是非常糟糕的做法。
标签: javascript algorithm math