//######
/*
재귀함수 recursive function
정의
1. 함수 내에서 자신을 다시 호출하는 함수
2. 자기자신으로 다시 정의내린다 (관계식)
특징
1. 코드가 짧아 . 쉬워보여 근데 어려워
2. 이해가 가 -> 뭔소린지모르겠어 혼자하려면 막막해 왜 돼지?
재귀함수
rec(n) : n부터 1까지 출력
: (n출력) -> (n-1출력 -> .... 2출력 -> 1출력)
: n출력 -> n-1부터 1까지 출력
: n출력 -> rec(n-1) (n>=1)
#include <stdio.h>
void rec(int n)
{
// if(n==0) return ;
printf("%d\n",n);
if(n!=1) rec(n-1);
}
rec(n) : 1 ~ n 출력
#include <stdio.h>
void rec(int n)
{
if (n==0) return ;
rec(n-1);
printf("%d\n",n);
}
int main()
{
int n;
scanf("%d",&n);
rec(n);
return 0;
}
/*
rec(a,b) : a부터 b까지 (3의배수만)출력
#include <stdio.h>
void rec(int a, int b)
{
if (a-1==b) return;
rec(a,b-1);
// if(b%3==0)
printf("%d\n",b);
}
int main()
{
int a,b;
scanf("%d %d",&a, &b);
rec(a, b);
return 0;
}
*/
/*
#include <stdio.h>
void rec(int n)
{
if (n==1) {
printf("1");
return ;
}
if (n%2==0){
printf("%d\n",n);
rec(n/2);
}
else if (n%2!=0){
printf("%d\n",n);
rec(3*n+1);
}
}
int main()
{
int n;
scanf("%d",&n);
rec(n);
return 0;
}
*/
/*
#include <stdio.h>
void f(int n) {
if (n==1) {
printf("*");
return ;
}
f(n-1);
printf("*");
}
int main() {
int n;
scanf("%d",&n);
f(n);
return 0;
}
*/
/*
#include <stdio.h>
void f(int n)
{
if (n<=0) return ;
f(n-1);
printf("*");
}
void f1(int n)
{
if (n==0) return ;
f1(n-1);
f(n); printf("\n");
}
int main()
{
int n;
scanf("%d",&n);
f1(n);
return 0;
}
rec(n) : 1~ n 합 리턴
: 1~n-1합 + n 리턴
: rec(n-1) + n
rec(2) == rec(1) +2
rec(1) == rec(0)+1 (x)
== 1
*/
/*
#include <stdio.h>
int rec(int n)
{
if (n==1){
return 1;
}
return rec(n-1)+n;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",rec(n));
return 0;
}
*/
/*
#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));
return 0;
}
*/
/*
#include <stdio.h>
int f(int n)
{
if (n==1 || n==2){
return 1;
}
return f(n-1)+f(n-2);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
return 0;
}
456
45
4
0
*/
/*
#include <stdio.h>
long long int f(long long int n)
{
if (n==0)
{
return 0;
}
return f(n/10)+n%10;
}
int main ()
{
long long int n;
scanf("%lld",&n);
printf("%lld",f(n));
return 0;
}
*/