首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >序列的乘积(阶乘) javascript

序列的乘积(阶乘) javascript
EN

Stack Overflow用户
提问于 2020-02-29 21:24:33
回答 2查看 142关注 0票数 1

这个想法是在一个序列中找到数字。方程式图:

代码语言:javascript
运行
复制
var pat = document.getElementById("pattern");
var nMax = 96; 

for (var n = 2; n <= 96; n++) {
    if (n != 96)
    	pat.innerHTML += 1000 * (999 - 10 * (n - 2))/(1000 - 10 * (n - 2)) + ", ";
    else
        pat.innerHTML += 1000 * (999 - 10 * (n - 2))/(1000 - 10 * (n - 2)) + ",&hellip;";
}
代码语言:javascript
运行
复制
<body>
    <p id="pattern"></p> 
</body>

但问题是,pat.innerHTML并没有将所有以前的n个数相乘。这样做的目的是创建一个序列:

a (2 ) = 1000 *(999-10*(2-2))/(1000-10*(2-2)) a (3 ) = 1000 *(999-10*(2-2))/(1000-10*(2-2))*(999-10*(3-2))/(1000-10*(3-2)) a (4 ) = a (3 ) *(999-10*(2-2))*(999-10*(3-2))a(4)=a(3)* (999 - 10 *(2-2)))/(1000-10*(4-2))

等等。我该怎么做?(使用适当的数学表示法,请参见图中的公式。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-29 21:31:18

听起来,您只需要跟踪保存上次迭代结果的持久性变量,并通过乘以当前迭代计算当前迭代的结果。序列从1000开始,因此将其作为初始结果:

代码语言:javascript
运行
复制
var pat = document.getElementById("pattern");
let lastResult = 1000;
for (var n = 2; n <= 94; n++) {
  const nextResult = lastResult * ((999 - 10 * (n - 2))/(1000 - 10 * (n - 2)))
  pat.innerHTML += nextResult + '<br>';
  lastResult = nextResult;
}
代码语言:javascript
运行
复制
<body>
    <p id="pattern"></p> 
</body>

票数 0
EN

Stack Overflow用户

发布于 2020-02-29 21:55:36

最好的方法是制作辅助计算的方法。如果你放了另一个for循环,然后追加新的值,就像数学需要的一样。

代码语言:javascript
运行
复制
/*
 Formula
*/

function calcFactoriel(arg) {

 var a = 0; // for numbers
 var b = ""; // for string
 
 for (var x = arg; x > 1; x--) {
 
    if (a == 0) {
      a = 1000 * (999 - 10 * (x - 2))/(1000 - 10 * (x - 2))  
    } else {
      a *= 1000 * (999 - 10 * (x - 2))/(1000 - 10 * (x - 2))  
    }
    
    b = "<div class='m' >" +  a + " , </div> ";
    
 }
 
 return b;
}

var pat = document.getElementById("pattern");
var nMax = 96; 

for (var n = 2; n <= nMax; n++) {
    	pat.innerHTML += calcFactoriel(n);
}
代码语言:javascript
运行
复制
.m {
 color: rgba(0,0,0,0.6);
 background: #629552;
 text-shadow: 2px 8px 6px rgba(0,0,0,0.2), 0px -5px 35px rgba(255,255,255,0.3);
}
代码语言:javascript
运行
复制
<body>
    <p id="pattern"></p> 
</body>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60469743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档