2016-02-01 2 views
-1

У меня есть факторный код, но когда он найдет результат факториала, он получит результат всего факториала.Как факториально только 5 номеров?

Im ищет код, который находит факториал последних 5 факториалов числа? Например, 10! ? Мне нужен только результат 10 x 9 x 8 x 7 x 6 = 30240? Как мне это сделать?

<html> 
<body> 
    <script type = "text/javascript"> 
     var n = parseInt(window.prompt("Enter the Number:")); 
     var result = fact(n); 
     window.alert("Factorial of the given number " + result); 
     function fact(n) 
     { 
      if(n == 0) 
       return 1; 
      else 
       return (n*fact(n-1)); 
     } 
    </script> 
</body> 

+0

Вы анализировали код, который вы видите? Ты понимаешь это ? –

+0

В основном вы делаете: '10!/5!' ('Fact (10)/fact (5)') – MinusFour

ответ

0

Как MinusFour уже отмечалось: вы хотите 10!/5!. Вы можете сделать это таким образом и вычислить оба значения и разделить. Они делятся точно, не волнуйтесь о фракциях (доказательство опущено). Но это ограничение по размеру, вы не можете этого сделать. 100!95! в JavaScript без большой целой библиотеки и даже с большой целой библиотекой вещи, такие как 1000000!/999998!, нуждаются в большом количестве времени вычисления (оба - цифры с более чем 5 миллионами десятичных цифр).

Мое предложение: никаких уловок, просто вычислить его линейно, как вы могли бы сделать это вручную:

function fact(n,k){ 
    var t = 1; 
    for(var i = n;i>k;i--){ 
    t *= i; 
    } 
    return t; 
} 
console.log(fact(10,5)); 

Первый должен быть больше один, оба должны быть положительными, все остальные сдержек и опущены , слишком.

Смежные вопросы