/*
#include <stdio.h>
long long int f(long long int a)
{
if(a<=0)return 0;
return f(a/10)+a%10;
{{{//f(a/10)-->
//n=n+a%10;--->두개의 식x 위에 식 쓰기}}}
}
int main()
{
long long int a;
scanf("%lld",&a);
printf("%lld\n",f(a));
}
*/
/*
#include <stdio.h>
void y(int z)
{
if(z<=0)return;
y(z-1);
printf("*");
}
void f(int z)
{
if(z<=0)return;
f(z-1);
y(z); // y(z) : *이 z개 출력
printf("\n");
}
int main()
{
int n;
scanf("%d",&n);
f(n);
return 0;
}
*/
/*
#include <stdio.h>
void f(int n, int k)
{
if(n<=0) return ;
f(n/k,k) ;
if(n%k==10)
{
printf("A");
}
else if(n%k==11)
{
printf("B");
}
else if(n%k==12)
{
printf("C");
}
else if(n%k==13)
{
printf("D");
}
else if(n%k==14)
{
printf("E");
}
else if(n%k==15)
{
printf("F");
}
else
{
printf("%d",n%k);
}
}
int main()
{
int n,k;
scanf("%d %d",&n,&k);
f(n,k);
return 0;
}
*/
/*
#include <stdio.h>
int x=0;
void f(int n)
{
x=x+1;
if(n==1)return;
if(n%2==0)
{
f(n/2);
}
else if(n%2==1)
{
f(n*3+1);
}
}
int main()
{
int n;
scanf("%d",&n);
f(n);
printf("%d",x);
return 0;
}
재귀( 코드간단하게) + 메모이제이션(코드 빠르게) ==> FAST!! EASY!!
#include <stdio.h>
int memo[201]={}; // memo[x]==0 x번째 피보나치수를 구한 적이 없다
int f(int x)
{
if(memo[x]!=0) // 계산한적있어?? 그럼 "또 계산하지말고" 전에 계산했떤거 리턴해!
{
return memo[x];
}
// 계산한적 없는 x번재 피보나치수를 구하기
// x번째 피보나치수를 memo[x]에 저장해놓기
if(x==1 ||x==2)
{
return memo[x] = 1;
}
else
{
return memo[x] = (f(x-1)+f(x-2))%10009;
}
}
int main()
{
int N;
scanf("%d",&N);
printf("%d",f(N));
}
*/
/*
#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];
}
else
{
arr[n]=(f(n-1)+f(n-2))%10009;
return arr[n];
}
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
}
*/