Skip to content

Instantly share code, notes, and snippets.

@alesya-h
Created December 21, 2010 23:23
Show Gist options
  • Save alesya-h/750801 to your computer and use it in GitHub Desktop.
Save alesya-h/750801 to your computer and use it in GitHub Desktop.
решение твоей задачи
#include <stdio.h>
#include <stdlib.h>
#define MAXN 3
#define MAXM 10
int A(int n, int m) // собственно наша функция. сразу замечу что смысла в ней
{ // я не нашел, она просто делает то что сказано в условии.
if(n==0) { // первая строчка условия. если n=0
return m + 1; // то значение функции это m+1
}else{ // вторая и третья строчки условия. если n!=0
if(m == 0) { // но при этом m=0,
return A(n-1, 1);// то значение функции для данных аргументов
// будет таким же как значение для аргументов n-1 и 1,
} else { // а если m!=0, то для таких аргументов
return A(n - 1, A(n, m - 1)); // значение функции будет таким же как и для
// аргументов n-1 и значения функции от аргументов n и m-1
}
}
}
int main()
{
int n,m;
//спрашиваем N
printf("N=");
scanf("%d",&n);
//спрашиваем M
printf("M=");
scanf("%d",&m);
//выводим A для заданных M и N
printf("A(%d,%d) = %d\n\n",n,m,A(n,m));
// код ниже рисует красивую табличку со значениями
// если будешь его удалять не забудь удалить вверху две строчки #define
// начало рисования таблички
// рисуем заголовок таблицы
printf("N\\M||"); // выводим "N\M|"
for(m = 0; m <= MAXM; m++){ // выводим " 0| 1| 2| 3|" и т.д.
printf("%5d|",m); // %3d означает что выводится число и для него
// отводится 3 позиции на экране
}
printf("\n===++"); // переходим на следующую строку и печатаем "===++"
for(m = 0; m <= MAXM; m++){ // выводим "=====+=====+=====+=====+" и т.д.
printf("=====+",m);
}
printf("\n"); // переходим на новыу строку
//рисуем строки со значениями
for(n = 0; n <= MAXN; n++){
printf("%3d||",n); // печатаем N
for(m=0; m <= MAXM; m++){
printf("%5d|", A(n,m)); // печатаем строчку значений функции для текущих M и N
}
printf("\n---++"); // печатаем "---++"
for(m = 0; m <= MAXM; m++){
printf("-----+"); // печатаем "-----+-----+-----+-----+" и т.д.
}
printf("\n");
}
// конец рисования таблички
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment