Язык Си в примерах/Факториал: различия между версиями

Содержимое удалено Содержимое добавлено
мНет описания правки
Строка 7:
В приведенной ниже программе определена функция <tt>factorial</tt>, вычисляющая факториал.
 
<source lang="c">#include <stdio.h>
 
long factorial(long x) {
#include <stdio.h>
if( x == 0 ) return 1;
long factorial(long x) {
if(return x ==* 0factorial )(x return- 1);
}
return x * factorial (x - 1);
void main() {
}
long n;
void main() {
while( longscanf("%ld", &n;) == 1)
while( scanfprintf("%ld\n", &factorial (n) == 1);
}</source>
printf("%ld\n", factorial (n));
}
 
 
Это определение основано на следующей '''рекуррентной'''
Строка 29 ⟶ 27 :
Если бы не было строчки
 
<source lang="c">if( n == 0 ) return 1;</source>
 
то функция <tt>factorial</tt> постоянно бы вызывала саму себя, и во