/*void Print(unigned int n)
{
if(n>9)
{
Print(n/10);
}
printf("%u",n%10);
}
int main()
{
unsigned int num=0;
scanf("%u",&num);
Print(num)
return 0;
}
//Print(1234)
//Print(123) 4……
void test(int n)
{
if(n<10)
{
test(n+1);
}
printf("%d\n",n);
}
int main()
{
int a=1;
test(a);
return 0;
}
//递归的每一层调用都是独立的
//写函数递归的时候需要注意的两点:
//1.不能出现死递归,必须要有跳出条件,且每次递归后需逼近跳出条件
//2。递归的层数不能太深
//求n阶乘
int main()
{
int n=0;
scanf("%d",&n);
int i=0;
int sum=1;
for(i=1;i<=n;i++)
{
sum=sum*i;
}
printf("%d\n",sum);
return 0;
}*/
/*#include<stdio.h>
int Fac(int x)
{
if(x<=1)
{
return 1;
}
else
{
return x*Fac(x-1);
}
}
int main()
{
int n=0;
scanf("%d",&n);
Fac(n);
printf("%d",Fac(n));
return 0;
} */
#include<stdio.h>
int Fib(int x)
{
if(x<=2)
{
return 1;
}
else
{
return Fib(x-1)+Fib(x-2);
}
}
int main()
{
int i=0;
scanf("%d",&i);
Fib(i);
printf("%d",Fib(i));
return 0;
}