#include <cstdio>
// f возвращает int и получает два числа типа int
int f( int a, int b ) {
if (a == 0)
return -1; // выйти из функции и вернуть ответ -1
if (b == 0)
return -1;
return a + b;
}
// процедура = функция, которая ничего не возвращает (ничего = void)
void draw( int n ) {
for (int i = 0; i < n; i++)
printf("-");
puts(""); // printf("\n");
}
// рекурсия
int fib( int n ) {
if (n <= 1)
return 1;
return fib(n - 1) + fib(n - 2);
}
// параметры по ссылке, result связана с переменной из внешнего мира
void factorial( int n, int &result ) {
result = 1;
while (n > 1)
result *= n--; // сперва использовать n, затем уменьшить на 1
}
int main() {
int x = 3;
draw(50);
printf("%d\n", f(0, 2 + 1)); // в параметры можно передавать числа, выражения
draw(50);
printf("%d\n", f(x, x * x + 2));
draw(50);
printf("%d\n", fib(40)); // долго...
factorial(10, x); // сохранили в x число n!
printf("%d\n", x);
return 0;
}