/*
#include <stdio.h>
void f(int n)
{
if (n!=1)
{
if (n%2==0)
{
printf("%d\n",n/2);
f(n/2);
}
else if (n%2!=0)
{
printf("%d\n",n*3+1);
f(n*3+1);
}
}
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",n);
f(n);
return 0;
}
f(n) : (1부터 n까지의 합 ) 리턴
: ( 1부터 n-1까지의합 + n )리턴
: ( f( n-1 ) + n ) 리턴
종료조건 -> f(1) -> return 1
#include<stdio.h>
int f(int n)
{
if(n==1) return 1;
return f(n-1)+n;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
}
#include<stdio.h>
int f(int n)
{
if(n==1)
{
return 1;
}
if (n!=1)
{
return f(n-1)*n;
}
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
}
f(n) : 피보나치 n번째수
첫 번째 수와 두 번째 수는 모두 1이고
f(1) 1
f(2) 1
세 번째 수부터는 이전의 두 수를 더하여 나타낸다.
f(3) f(1) + f(2)
f(4) f(2)+f(3)
.....
f(n) f(n-2) + f(n-1)
#include<stdio.h>
int arr[201]={};
int f(int n)
{
if (n==1 || n==2)
{
return 1;
}
else
{
if (arr[n]!=0) return arr[n];
arr[n]=(f(n-1)+f(n-2))%10009;
return arr[n];
}
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
}
*/
#include<stdio.h>
arr[51][51]={};
int f(int n,int m)
{
}
int main()
{
int n,m;
scanf("%d %d",&n,&m);
printf("%d",f(n,m));
}



