컴퓨터 과학/C Language

2022-01-27 재귀함수

계란💕 2022. 1. 28. 00:18

 

/*
#include <stdio.h>

void f(int n)
{
    if(n == 0) return;

    printf("%d\n", n);

    f(n-1);
}

int main()
{
    f(3);

    return 0;
}
*/
/*
#include <stdio.h>

void f(int n)
{
    if(n == 0) return;
    f(n-1);
    printf("%d", n);
}

int main()
{
    f(5);

    return 0;
}
*/
/*
#include <stdio.h>

void f(int n)
{
    if( n == 0) return;
    f(n - 1);
    printf("%d", n);

}

int main()
{
    f(5);

    return 0;
}
*/
/*
#include <stdio.h>

void f(int k)
{
    if ( k == 0 )
    {
        return;
    }
    else
    {
        f(k-1);
        printf("%d", k);
    }
}

int main()
{
    int n = 5;
    f(n);


    return 0;
}
*/
/*
#include <stdio.h>

void f(int k)
{
    if(  k == 0 ) return;

    else
    {
        printf("*");
        f(k - 1);
    }
}


int main()
{
    int n;
    scanf("%d", &n );
    f(n);
    printf("\n");
    return 0;
}
*/
/*
#include <stdio.h>

void f(int k)
{
    if( k == 0 ) return;

    else
    {

        printf("%d ", k );
        f(k-1);
    }

}

int main()
{
    int N;
    scanf("%d", &N );
    f(N);
    return 0;
}
*/
/*
#include <stdio.h>

void f(int k)
{
    if( k == 0 ) return ;

    else
    {
        f(k -1);
        printf("%d ", k );
    }
}

int main()
{
    int N;
    scanf("%d", &N );
    f(N);

    return 0;
}
*/
/*
#include <stdio.h>

void odd(int k)
{
    if ( k < 1 ) return;

    else
    {
        if( k % 2 == 1 )
        {
            printf("%d ", k);
            odd(k - 2);
        }
    }
}

int main()
{
    int N;
    scanf("%d", &N );
    odd(N);

    return 0;
}

*/
/*
#include <stdio.h>

void mul(int k)
{
    if( k <= 0) return 0 ;

    else
    {
        if( k % 3 == 0)
        {
            printf("%d ", k );
            mul(k - 3);
        }

        else if( k % 3 == 1)
        {
            printf("%d ", k -1 );
            mul(k - 4);
        }
        else
        {
            printf("%d ", k - 2 );
            mul(k - 5);
        }
    }


}

int main()
{
    int n;
    scanf("%d", &n);
    mul(n);

    return 0;
}



*/
/*

#include <stdio.h>

void f(int k)
{
    if( k < 1 ) return;

    else
    {
        if( k % 2 == 1)
        {
            printf("%d ", k);
            f(k - 2);
        }
        else
        {
            printf("%d ", k - 1);
            f(k - 3);
        }
    }
    return;
}

int main()
{
    int n;

    scanf("%d", &n );

    f(n);

    return 0;
}



*/
/*
#include <stdio.h>

void count(int n)
{
    if( n > 0)
        count( n - 1);
    printf("%d", n);
}

int main()
{
    int n;

    scanf("%d", &n);
    count(n);

    return 0;
}
*/
/*
#include <stdio.h>

void count(int n)
{
    if( n == 0 ) return;

    printf("%d ", n);

    count(n - 1);
}

int main()
{

    int n;
    scanf("%d", &n );
    count(n);

    return 0;
}

*/
/*
#include <stdio.h>

int cnt;

void test(int n)
{
    if( n <= 1) ++cnt;

    else
    {
        test(n / 2);
    }

}

int main()
{
    cnt = 0;

    test(10);

    printf("%d\n", cnt);

    return 0;
}

*/
/*
#include <stdio.h>

void f(int x)
{
    if( x == 0 ) return;

    f(x / 2);

    printf("%d ", x % 2 );

}

int main()
{
    f(10);

    printf(" ");

    f(7);

    printf(" \n");

    return 0;
}

*/
/*
#include <stdio.h>

int f(int n)
{
    if( n == 1 ) return 1;
    return n+ f(n - 1);

}

int main()
{
    int s;

    s = f(5);

    printf("%d", s );

    return 0;
}
*/
/*
#include <stdio.h>

int f(int k)
{
    if( k == 1) return 1;

    return f(k-1) * k;
}

int main()
{
    int n;
    n = 6;
    printf("%d", f(n) );

    return 0;
}
*/
/*
#include <stdio.h>

void f(int k)
{
    int cnt = 0;

    cnt = cnt +k % 10;

    k = k / 10;

    cnt = cnt + k % 10;

    k = k /10;

    cnt = cnt + k % 10;

    return cnt;
}

int main()
{
    int n;
    scanf( "%d", &n );
    f(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 fac(int k)
{
    if( k == 1) return 1;
    return fac(k-1) * k;
}


int main()
{
    int n;
    scanf("%d", &n );
    printf("%d", fac(n));
    return 0;
}
*/
/*
#include <stdio.h>

long long int f(long long int n)
{
    long long int cnt = 0;

    if( n / 10 > 0 ) return;

    else
    {
    cnt = cnt + n % 10;

    n =  n / 10;

    }
    return cnt;
}


int main()
{
    long long  int n;

    scanf("%lld", &n );

    printf("%lld", f(n));

    return 0;
}

*/
/*
#include <stdio.h>

int f(int n)
{
    int i;

    int sum;

    if( n == 1 ) return 1;

    sum = 0;

    for(i = 0;i < 2; ++i)
    {
        sum += f( n/2 );
    }
    for( i = 0;i < n; ++i)
    {
        ++sum;
    }
    return sum;
}


int main()
{

    int n;

    scanf("%d", &n);

    printf("%d", f(n) );

    return 0;
}
*/
/*
#include <stdio.h>

int f(int a, int b)
{
    if( a == b )
    {
        return a;
    }
    else
    {
        int mid;
        mid = (a + b)/ 2;
        return f(a, mid) + f( mid + 1, b);
    }

}

int main()
{
    int s;
    s = f(1, 4);
    printf("%d", s);

    return 0;
}
*/
/*
#include <stdio.h>

int cnt;

void test(int n)
{
    if( n <= 1) ++cnt;
    else
    {
        test(n /2);
        test(n /2);
    }
}

int main()
{
    cnt = 0;
    test(10);
    printf("%d\n", cnt );

    return 0;
}

*/
/*
#include <stdio.h>

void f(int k)
{
    printf("%d\n", k );

    if( k == 1) return;

    if(k % 2 == 1 )
    {
        f(3*k + 1);
    }
    else
    {
        f( k/2 );
    }
}

int main()
{

    f(5);
    return 0;
}

*/
/*
#include <stdio.h>

int f(int x, int y)
{
    if( x % y == 0) return y;
    else  return f( y, x % y);

}

int main()
{
    int k;
    k = f(32, 56);
    printf("%d\n", k );

    return 0;
}
*/
/*


#include <stdio.h>

void reverse(int n)
{
    if(n < 1) return;

    printf("%d", n % 10);
    reverse(n / 10);

}

int main()
{
    int data;
    int i, len;
    scanf("%d", &data );
    reverse(data);
    return 0;
}

*/
/*
#include <stdio.h>

int n, k = 16, sum;

void recur(int p)
{
    if( p == 0 ) return;

    recur( p / k );

    if( p % k == 10 ) printf("A");
    else if( p % k == 11 ) printf("B");
    else if( p % k == 12 ) printf("C");
    else if( p % k == 13 ) printf("D");
    else if( p % k == 14 ) printf("E");
    else if( p % k == 15 ) printf("F");
    else
    {
        printf("%d", p % k );
    }
}

int main()
{
    scanf("%d %d", &n, &k );

    recur(14);

    return 0;
}

*/
/*
#include <stdio.h>

char star[1000];

void f(int n)
{
    if(n <= 0) return ;
    f(n - 1);
    star[n] = '*';
    puts(star + 1);

}

int main()
{
    int n;
    scanf("%d", &n );
    f(n);

    return 0;
}

*/
/*
#include <stdio.h>

int n;

void g(int k)
{
    if( k <= 0) return;
    g(k - 1);
    printf("*");

}

void f(int k)
{
    if(k <= 0) return;
    f(k-1);
    g(k);
    printf("\n");
}

int main()
{
    scanf("%d", &n );
    f(n);

    return 0;
}
*/
/*
#include <stdio.h>

int n;
void g(int k)
{
    if( k <= 0 ) return;

    g(k - 1);
    printf("*");

}

void f(int k)
{
    if(k > n) return;
    f(k + 1);
    g(k);
    printf("\n");
}

int main()
{

    scanf("%d", &n );
    f(1);
    return 0;
}
*/
/*
#include <stdio.h>

 int cnt;

void test(int n)
{

    if ( n <= 1) ++cnt;

    else
    {
        test( n / 2);
        test( n / 2);
    }
}

int main()
{
    cnt = 0;

    test(20);

    printf("%d\n", cnt);

    return 0;
}

*/
/*
#include <stdio.h>

int f(int a)
{
    if( a <= 2)
        return a;
    else
        return f(a - 1) * f(a - 2);
}

int main()
{
    printf("%d", f(6) );

    return 0;
}
*/
/*
#include <stdio.h>

int f(int a)
{
    if( a <= 2) return a;
    else
        return f(a - 1) * f(a -2);
}

int main()
{
    printf("%d", f(6) );


    return 0;
}
*/
/*
#include <stdio.h>


int f(int n)
{
    if (n <= 0) return 1;

    else
        return f(n - 1) + f(n - 3) * 3;
}

int main()
{
    printf("%d", f(4) );

    return 0;
}

*/
/*
#include <stdio.h>

int c[9] = {1, 3, 7, 2, 4, 1, 5, 3};

int f(int a, int b)
{
    int mid;
    if( a == b )
    {
        return c[a];
    }
    else
    {
        int mid;
        mid = (a + b) / 2;
        return f(a, mid) - f(mid + 1, b);

    }
}

int main()
{

    printf("%d", f(1, 8) );
    return 0;
}

*/
/*
#include <stdio.h>

int n;

void f(int k)
{
    if( k <= 0 ) return;

    f(k - 1);

    printf("%d", k );
}

int main()
{
    scanf("%d", &n );
    f(n);

    return 0;
}

*/
/*
#include <stdio.h>

int n;

void g(int k)
{
    if( k <= 0) return;
    g(k - 1);
    printf("%d", k );

}

void f(int k)
{
    if(k > n) return;
    g(k);
    printf("\n");
    f( k + 1);
}

int main()
{
    scanf("%d", &n );

    f(1);

    return 0;
}

*/
/*
#include <stdio.h>

int a, b;

int f(int p, int q)
{
    if(p == q) return p;

    return  f(p + ( p < q ? a : 0 ) ,  q + (p > q ? b : 0) );
}

int main()
{

    scanf("%d %d", &a, &b );
    printf("%d\n", f(a, b) );

    return 0;
}
*/
/*
#include <stdio.h>

int i, n, d[50];

void f(int k)
{
    if( k == 1) return;

    if( d[k-1] > d[k] )
    {
        int t = d[k - 1];
        d[k- 1] = d[k];
        d[k] = t;

        f(k - 1);
    }
}

int main()
{
    scanf("%d", &n );

    for( i = 1; i <= n; ++i)
    {
        scanf("%d", &d[i] );

        f(i);

    }

    for( i = 1;i <= n; ++i )
    {
        printf("%d ", d[i]);
    }


    return 0;
}

*/
/*

#include <stdio.h>

void mul(int k)
{
    int i = 0;

    if(i == 10 ) return;
    else
    {
        ++i;
        printf("%d * %d = %d\n", k, i, k *i );

        mul(k);
    }
}

int main()
{
    int n;

    scanf("%d", &n );

    mul(n);

}

*/
/*
#include <stdio.h>

void f(int x)
{
    if( x == 0) return;

    f( x / 2);

    printf("%d", x / 2);
}

int main()
{
    f(10);

    printf(" ");

    f(7);

    printf("\n");

    return 0;
}
*/
/*
#include <stdio.h>

void f(int k)
{

    if( k == 0 ) return;

    printf("%d", k % 10);
    k = k / 10;
    f(k);

}

int main()
{
    int n;

    scanf("%d", &n );

    f(n);

    return 0;
}

*/
/*
#include <stdio.h>

int sum = 0;

int f(int k)
{

    if( k  == 0 ) return 0;

    else
    {
        sum  += k % 10;

        k = k / 10;

        f(k);

        return sum;
    }

}

int main()
{
   int n;

   scanf("%d", &n );

   f(n);

    return 0;
}

*/
/*
#include <stdio.h>

int f(int n)
{
    int i;
    int sum;

    if( n == 1) return 1;
    sum = 0;

    for(i = 0;i < 2; ++i)
    {
        sum += f( n / 2);
    }
    for(i = 0;i < n; ++i)
    {
        ++sum;
    }
    return sum;

}

int main()
{
    printf("%d" , f(8));

    return 0;
}

*/
/*
#include <stdio.h>

int i = 1;

int mul(int k)
{

    if( i == 10) return;

    else
    {
        printf("%d * %d = %d\n", k , i , k * i);

        ++i;
        mul(k);
    }

    return 0;
}



int main()
{
    int n;

    scanf("%d", &n );

    mul(n);

    return 0;
}

*/

재귀함수 이용한 곱셈식 출력

 

'컴퓨터 과학 > C Language' 카테고리의 다른 글

Chapter 02. 포인터(Pointer)  (0) 2022.01.30
Chapter 01. 함수(Function)  (0) 2022.01.30
2022-01-26 구조체 할당  (0) 2022.01.27
2022-01-24 포인터 연습  (0) 2022.01.25
2022-01-23 포인터 변수  (0) 2022.01.24