/*
#include<stdio.h>
int main()
{
int arr[101][101]={};
int i,j,k,n,d=1,t,p,q;
scanf("%d",&n);
//테두리==================================
for (i=0;i<=n+1;i++)
{
for (j=0;j<=n+1;j++)
{
if (i==0 || i==n+1 || j==0 ||j==n+1)
{
arr[i][j]=1;
}
}
}
//테두리==================================
i=1;
j=1;
for (k=1;k<=n*n;k++)
{
arr[i][j]=k;
//mode 1
if (d==1)
{
if (arr[i][j+1]==0)
{
j++;
}
else
{
i++;
d=2;
}
}
//mode 2
else if (d==2)
{
if (arr[i+1][j]==0)
{
i++;
}
else
{
j--;
d=3;
}
}
//mode 3
else if (d==3)
{
if (arr[i][j-1]==0)
{
j--;
}
else
{
i--;
d=4;
}
}
//mode 4
else if (d==4)
{
if (arr[i-1][j]==0)
{
i--;
}
else
{
j++;
d=1;
}
}
}
//출력========================================
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
//출력========================================
}
재귀함수의 특징
1. 쉽다 but 어렵다.
2. 코드가 굉장히 짧다.
3. 말이 돼!! but 왜 되지??
재귀함수
1. 함수 내에서 자신을 다시 호출하는 함수
2. 자신으로 다시 정의내리는 함수 (말이 되게 쪼개기)
f(n) : n부터 1까지 출력
: n출력 -> n-1부터 1까지 출력
: n출력 -> f(n-1) (n>=1)
#include<stdio.h>
void f(int n)
{
if(n==0) return ; //종료조건
printf("%d ",n);
f(n-1);
}
int main()
{
f(2);
}
1901 ~ 1912 : ??굳이?? "재귀"함수 만들기 연습
1915 ~ : "재귀"라는 기법을 쓰면 이 문제를 쉽게 풀 수 있다
f(n) : 1부터 n까지 출력
: 1부터 n-1까지 출력 -> n출력
#include<stdio.h>
void f(int n)
{
if (n>=1)
{
f(n-1);
printf("%d\n",n);
}
}
int main()
{
int n,a=1;
scanf("%d",&n);
f(n);
}
#include<stdio.h>
void f(int n)
{
if (n>=1)
{
printf("%d\n",n);
f(n-1);
}
}
int main()
{
int n;
scanf("%d",&n);
f(n);
}
*/
#include<stdio.h>
void f(int n)
{
if ()
}
int main()
{
int n;
scanf("%d",&n);
f(n);
}



