Created
December 21, 2010 23:23
-
-
Save alesya-h/750801 to your computer and use it in GitHub Desktop.
решение твоей задачи
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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