试图计算一个数字,即7! = 1 * 2 * 3 * 4 * 5 * 6 * 7 = 5040
从这开始,但我还没有能够解决这个问题:
function factorialize(num) {
for (i = 1; i < num; i ++) {
var math = i * i;
math++;
return math;
}
}
先谢谢你。
答案 0 :(得分:1)
你在这个代码中有几个错误,首先你将 i * i ,然后用一个增加数学,然后你在for循环中返回你只会执行1次迭代,
有几种方法可以实现它, 我将写下其中的两个
function get_factorial(num){
if(num < 0){
throw new RangeError('Factorial is only defined for non-negative integers');
}
var res = 1;
for(var i = num;num >1 ; num--){
res *= num;
}
return res;
}
和递归方式:
function get_factorial(num){
if(num < 0){
throw new RangeError('Factorial is only defined for non-negative integers');
}
if(num ==1 || num ==0){
return 1;
}
return num * get_factorial(num-1);
}
**现在根据Paul建议
,在负数而不是返回字符串的情况下抛出异常答案 1 :(得分:0)
仔细看看你在那里的第三行。 你在那里犯了一个数学错误,你也犯了以下几行错误 - 仔细考虑你想要循环的内容,即你想要多次执行的步骤。
我希望有所帮助,我担心我们在推出解决方案方面并不大,这是一项相当简单的任务。如果您仍然无法重新考虑编程的一些基础知识,包括for循环,并尝试写出您想要实现的图表。
答案 2 :(得分:0)
int total = 1;
for(int i =1; i <= num; i++){
total *= i;
}
return total;