/* Tests if no extra indentation is inserted before
 *		if (n > 0) {
 *			return n * fact(n-1)
 *		} else {
 *			return 1;
 *		}
 */
int i;