# Quick question about code

**URL:** <https://forum.freecodecamp.org/t/quick-question-about-code/78687>\
**Category:** General\
**Created:** [January 20, 2017, 12:28pm UTC](https://forum.freecodecamp.org/t/quick-question-about-code/78687 "2017-01-20T12:28:40Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![codejsp](https://avatars.discourse-cdn.com/v4/letter/c/e47c2d/32.png) [@codejsp](https://forum.freecodecamp.org/u/codejsp)\
**Post date:** [January 20, 2017, 12:28pm UTC](https://forum.freecodecamp.org/t/quick-question-about-code/78687/1 "2017-01-20T12:28:40Z")

</div>

```javascript
function factorialize(num) {
  if (num === 0) { 
    return 1; 
  }
  return num * factorialize(num-1);
}

factorialize(5);

```

or

```javascript
function factorialize(num) {
  if (num === 0) { return 1; }
  return num * factorialize(num-1);
}

factorialize(5);

```

Is there a difference? Which is preferred?

---

<div class="post-metadata">

**Author:** ![adityaparab](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/adityaparab/32/64616_2.png) [@adityaparab](https://forum.freecodecamp.org/u/adityaparab)\
**Post date:** [January 20, 2017, 12:34pm UTC](https://forum.freecodecamp.org/t/quick-question-about-code/78687/2 "2017-01-20T12:34:46Z")

</div>

> Is there a difference?

Not really Just white spaces are removed.

> Which is preferred?

I’d prefer 1st one as it has proper indentation and is more readable.

* * *

There is, however, a non recursive version. By using loops

```js
function factorialize(num) {
  var factorial = 1;
  for(var i=1;i<=num;i++){
    factorial *=i;
  }
  return factorial ;
}

factorialize(5);

```

What you do is, you run a loop from 1 (not 0, because anything multiplied by 0 is 0) to `i<=num` (because you need to include original number as well) or to `i < num+1`. (for the same boundary condition).

Then inside the loop, you multiply your `factorial` value with `i` and return `factorial` value after loop ends.

> Which is preferred?

It really depends on you. For most people recursion is not intuitive.

---

<div class="post-metadata">

**Author:** ![codejsp](https://avatars.discourse-cdn.com/v4/letter/c/e47c2d/32.png) [@codejsp](https://forum.freecodecamp.org/u/codejsp)\
**Post date:** [January 20, 2017, 12:42pm UTC](https://forum.freecodecamp.org/t/quick-question-about-code/78687/3 "2017-01-20T12:42:46Z")

</div>

Thanks for the quick and easy to understand reply, helps a lot! 😍

---

<div class="post-metadata">

**Author:** ![kevcomedia](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/kevcomedia/32/125737_2.png) [@kevcomedia](https://forum.freecodecamp.org/u/kevcomedia)\
**Post date:** [January 20, 2017, 12:52pm UTC](https://forum.freecodecamp.org/t/quick-question-about-code/78687/4 "2017-01-20T12:52:27Z")

</div>

I cleaned up your code.  
You need to use triple backticks to post code to the forum.  
See [this post for details](http://forum.freecodecamp.com/t/forum-code-formatting/25574).

---

<div class="post-metadata">

**Author:** ![adityaparab](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/adityaparab/32/64616_2.png) [@adityaparab](https://forum.freecodecamp.org/u/adityaparab)\
**Post date:** [January 20, 2017, 12:55pm UTC](https://forum.freecodecamp.org/t/quick-question-about-code/78687/5 "2017-01-20T12:55:33Z")

</div>

Why am I not allowed to edit the code? Do I need to be a mod or do i need to acquire enough points? How does this work?

---

<div class="post-metadata">

**Author:** ![kevcomedia](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/kevcomedia/32/125737_2.png) [@kevcomedia](https://forum.freecodecamp.org/u/kevcomedia)\
**Post date:** [January 20, 2017, 12:58pm UTC](https://forum.freecodecamp.org/t/quick-question-about-code/78687/6 "2017-01-20T12:58:49Z")

</div>

You can only edit your own posts unless you’re a mod. There isn’t really a point system in the forum, but there are trust levels (see the [Trust Level badges](https://forum.freecodecamp.com/badges)).

---

<div class="post-metadata">

**Author:** ![fuqted](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/fuqted/32/35040_2.png) [@fuqted](https://forum.freecodecamp.org/u/fuqted)\
**Post date:** [January 20, 2017, 8:05pm UTC](https://forum.freecodecamp.org/t/quick-question-about-code/78687/7 "2017-01-20T20:05:15Z")

</div>

There is absolutely no difference. I prefer the second one. It’s more concise and readable.

I think this is probably best:

```auto
function factorial(num){
  return num === 0 ? 1 : num * factorial(num--);
}

```

---

<div class="post-metadata">

**Author:** ![ILM](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/ilm/32/363239_2.png) [@ILM](https://forum.freecodecamp.org/u/ILM)\
**Post date:** [January 16, 2021, 5:10pm UTC](https://forum.freecodecamp.org/t/quick-question-about-code/78687/8 "2021-01-16T17:10:42Z")

</div>

Closed on January 16, 2021, 5:10pm UTC


