Oletem
10/1/2017 - 1:02 PM

Factorialize a Number

Главный, сука, урок здесь таков: в while и for loop можно пихать не только отбитые и отвлеченные i++ var i++ - local variables, dicrements. Но иглобальные переменные из аргументов функции, например.

Не забывай об этом больше. Никогда

Так можно:

function factorialize(num) {

var result = num;

if(num === 0|| num ===1){

return 1; } while (num>1){

num--;

result*=num;

}

return result; }

factorialize(5);

Return the factorial of the provided integer.

If the integer is represented with the letter n, a factorial is the product of all positive integers less than or equal to n.

Factorials are often represented with the shorthand notation n!

For example: 5! = 1 * 2 * 3 * 4 * 5 = 120

Remember to use Read-Search-Ask if you get stuck. Write your own code.

Here are some helpful links:


function factorialize(num) {

  var fact = 1; // первая составляющая любого числа все равно - 1
  
  for(var i= num; i>0; i--){// вносим аргумент фунции в фор луп. покуда i= агрументу функции(5) больше нуля 
  }
    
     fact=fact*i; /*1*5;4*5;20*3;60*2; на 1 уже множили, блядь. fact - каждый раз запоминает 
     и перезаписывает себя во втрой части, а i - на единицу меньше, чем  num*/
     
     /*Мы присваиваем num i и множим fact*i, а не на num потому, что i уменьшается каждый раз в 
     
     ходе запуска фор луп, а num - нет*/
  
  return fact ;
}

factorialize(5);

/*------------------------------------------Ебаная рекурсия---------------------------------*/

function factorialize(num) {
if(num === 0|| num ===1){
  
  return 1;
}//0 и 1 дают 1 при факториалтзации
  return num*factorialize(num-1);/* Если же не они - мы множим num на функцию, отнимаю от аргумента по -1,
  
  а функции, Recursion refers to a function repeating (calling) itself.
  In this case we are basically returning the given number (i.e. 5), 
  multiplied by the function itself but this time the value passed 
  to the num parameter is num-1 (which initially translates to 4). 
  The very function is going to run inside itself interesting, eh?*/


}

factorialize(5);

/*------------------------------------------While loop---------------------------------*/


function factorialize(num) {

  var result = 1;
  
  while(num>0){
  
  result *=num;
    
    num--;
}
  return result;
}

factorialize(5);