20251018
/*#include <stdio.h>
int n, a, b, d[1010];
long long int subsetsum(int s, int p)
{
long long int t, r=0;
for(t=s;t<=p;t=t+1)
{
r=r+d[t];
}
return (long long int)r;
}
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%d", &d[i]);
scanf("%d%d", &a, &b);
printf("%lld\n", subsetsum(a, b));
}
*/
/*#include <stdio.h>
int n;
long long int d[110];
long long int f()
{
long long int s, p;
p=d[1];
for(s=1;s<=n;s=s+1)
{
if(p>d[s])
{
p=d[s];
}
}
return (long long int)p;
}
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%lld", &d[i]);
printf("%lld", f());
return 0;
}
*/
/*#include <stdio.h>
int n, k, d[1010];
int upper_bound(int s)
{
int p;
for(p=1;p<=n;p=p+1)
{
if(s<d[p])
{
return p;
}
}
return n+1;
}
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%d", &d[i]);
scanf("%d", &k);
printf("%d\n", upper_bound(k));
}
*/
/*#include <stdio.h>
int a, b;
int gcd(int s, int p)
{
int r;
for(r=100000;r>=1;r=r-1)
{
if(s%r==0 && p%r==0)
{
return r;
}
}
}
int main()
{
scanf("%d%d", &a, &b);
printf("%d\n", gcd(a, b));
}
*/
/*#include <stdio.h>
int a, n;
long long int pow(int s, int p)
{
long long int r, t;
t=1;
if(s==1)
{
return 1;
}
for(r=1;r<=p;r=r+1)
{
t=t*s;
}
return (long long int)t;
}
int main()
{
scanf("%d%d", &a, &n);
printf("%lld\n", pow(a, n));
}
*/
/*#include <stdio.h>
int n, k, d[1010];
int lower_bound(int s)
{
int p;
for(p=1;p<=n;p=p+1)
{
if(s<=d[p])
{
return p;
}
}
return n+1;
}
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%d", &d[i]);
scanf("%d", &k);
printf("%d\n", lower_bound(k));
}
*/
/**
재귀함수 : 다시 자신을 호출하는 함수
특징 : 코드가 짧고, 간결
void f()
{
f();
}
void f(int n)
{
printf("%d\n",n);
if(n==1) return ;
f(n-1);
}
f(n) : n ~ 1 출력
: n 출력 -> n-1 ~ 1 출력
: n 출력 -> f(n-1)
*/
#include <stdio.h>
void f(int n)
{
if(n==0) return ; // 종료조건
printf("%d\n",n);
f(n-1); // 재귀호출
}
int main()
{
f(5);
return 0;
}

