函数说明这个阶乘

时间:2016-10-13 13:36:47

标签: javascript

我已经使用控制台日志进行了测试,但经过多次尝试后,我仍然无法弄清楚这个功能是如何产生的。在这种情况下,数字6将被放入名为thingamajig的此函数的参数中,而else语句将抛出执行。但后来我迷失了执行的怪癖。我理解尺寸执行情况,只知道如何输出6,30,120,360,720这个古怪的东西?



function clunk(times) {
	var num = times; 
	while (num > 0) {
		display("clunk");
		num = num -1;
	}
}

function thingamajig(size) {
	var facky = 1;
	clunkCounter = 0;
	if (size == 0) {
		display("clank");
	} else if (size == 1) {
		display("thunk");
	} else {
		while (size > 1) {
			facky = facky * size; //outputs 6, 30, 120, 360, 720
			size = size - 1; //outputs 6, 5, 4, 3, 2, 1
		}
		clunk(facky);
	}
}

function display(output) {
	console.log(output);
	clunkCounter = clunkCounter + 1;
}

var clunkCounter = 0;
thingamajig(6);
console.log(clunkCounter);




2 个答案:

答案 0 :(得分:0)

  

如何输出6,30,120,360,720?

这基本上是一个因子实现,

代表size == 6

6 * 5 * 4 * 3 * 2 = 720 

等等。

答案 1 :(得分:0)

很简单。 当你发送到thingamajig大小6 fucky将是6 * 5 * 4 * 3 * 2

当您发送尺码30时, fucky将是30 * 29 * 28 .... * 2 等

所以, 如果发送3 - fucky将是6(3 * 2)