//void f(int n) //반복문을 쓰는 일반 함수
//{
// while(n>0)
// {
// printf("%d\n",n);
// n--;
// }
//}
//재귀함수
//다시 돌아온다
//: 함수 내에서 자신을 다시 호출하는 함수
//: 자신을 자신으로 다시 정의내리는
// recursive function
/*
#include <stdio.h>
f(10) : 10부터 1까지 출력
10출력 -> 9ㅜㄹ력 -> 8출력 -> ... 1출력
10출력 -> 9부터 1까지출력
10출력 -> f(9)
f(n) : n부터 1까지 출력
n출력 -> n-1부터 1까지 출력
n출력 -> f(n-1)
void f(int n)
{
if(n==0) return; //종료조건
printf("%d\n",n);
f(n-1); //재귀호출
}
int main()
{
f(10);
return 0;
}
*/////////
/*
#include <stdio.h>
int w=1,n;
void f(int w)
{
printf("%d\n",w);
if(w==n){return;}
f(w+1);
}
int main(void)
{
scanf("%d",&n);
f(w);
return 0;
}
*/
/*
//f(a, b) : a부터 b까지 출력
// a출력 -> a+1부터 b까지 출력
// a출력 -> f(a+1,b)
#include <stdio.h>
void f(int a, int b)
{
if(a==b+1)return;
if(a%2==1)printf("%d ", a);
f(a+1, b);
}
int main()
{
int a, b;
scanf("%d %d", &a, &b);
f(a,b);
return 0;
}
*/
/*
#include <stdio.h>
void f(int a)
{
if(a<=1)
{
printf("1");
return;
}
printf("%d\n",a);
if(a%2==1)
{
f(a*3+1);
}
else
{
f(a/2);
}
}
int main()
{
int a;
scanf("%d", &a);
f(a);
return 0;
}
*/
/*
#include <stdio.h>
void f(int a)
{
if(a==1)return;
else
{
if(a%2==0)
{
f(a / 2);
}
else
{
f(a*3 + 1);
}
}
printf("%d\n",a);
}
int main()
{
int a;
scanf("%d", &a);
printf("1\n");
f(a);
return 0;
}
*/
/*
//rec(n) : 1부터 n까지의 합 리턴
// : ( 1부터 n-1까지의 합 + n )리턴
// : rec(n-1)+n 리턴
int rec(int a)
{
if(a==1)return 1;
return rec(a-1)+a;
}
int main()
{
int a=0;
scanf("%d", &a);
printf("%d",rec(a));
return 0;
}
*/
/*
#include <stdio.h>
int f(int a)
{
if(a==1)return 1;
return f(a-1)*a;
}
int main()
{
int a;
scanf("%d", &a);
printf("%d",f(a));
return 0;
}
*/