재귀를 이용한 첫 N 개 숫자 합

CBeginner
지금 연습하기

소개

이 랩에서는 재귀 (recursion) 를 사용하여 처음 N 개의 숫자의 합을 구하는 방법을 배웁니다. C 프로그래밍 언어를 사용하여 사용자 입력을 받고, 처음 N 개의 숫자의 합을 계산하여 사용자에게 결과를 출력하는 프로그램을 작성할 것입니다. 재귀는 프로그래밍에서 함수가 자체를 호출하여 문제를 해결하는 데 사용되는 기술입니다.

파일 생성 및 main 함수 정의

먼저, main.c라는 새 파일을 생성합니다. main 함수는 N 의 값을 위한 사용자 입력을 받고, 이 입력을 재귀 합 함수에 전달한 다음 결과를 출력합니다.

#include<stdio.h>

int getSum(int);

int main()
{
    printf("This program finds the sum of the first N numbers using recursion.\n");

    int n, sum;
    printf("\nEnter the value of N: ");
    scanf("%d", &n);

    sum = getSum(n);

    printf("\nThe sum of the first %d numbers is %d\n", n, sum);

    return 0;
}

재귀 합 함수 정의

이 단계에서는 재귀 합 함수 getSum()을 정의합니다. 이 함수는 정수 매개변수 n을 받아 처음 n개의 정수의 합을 반환합니다. 이 함수는 n이 0 이하가 되는 경우에 도달할 때까지 재귀적으로 호출됩니다.

int getSum(int n)
{
    static int sum = 0;

    if (n <= 0) {
        return sum;
    }

    sum += n;
    getSum(n-1);
}

static int sum = 0; 문은 정적 지역 변수를 생성하는 데 사용됩니다. 이것은 재귀이므로, getSum()이 여러 번 호출될 때마다 동일한 변수가 사용됩니다.

코드 실행

이제 프로그램을 실행할 준비가 되었습니다. 다음 명령을 사용하여 프로그램을 컴파일하고 실행합니다.

gcc main.c -o main
./main

전체 코드 목록

#include<stdio.h>

int getSum(int);

int main()
{
    printf("This program finds the sum of the first N numbers using recursion.\n");

    int n, sum;
    printf("\nEnter the value of N: ");
    scanf("%d", &n);

    sum = getSum(n);

    printf("\nThe sum of the first %d numbers is %d\n", n, sum);

    return 0;
}

int getSum(int n)
{
    static int sum = 0;

    if (n <= 0) {
        return sum;
    }

    sum += n;
    getSum(n-1);
}

요약

이 랩에서는 C 프로그래밍에서 재귀 (recursion) 를 사용하여 처음 N 개의 숫자의 합을 구하는 방법을 배웠습니다. 사용자 입력을 받고, 재귀 함수를 사용하여 처음 N 개의 정수의 합을 계산하고, 결과를 사용자에게 출력하는 프로그램을 만들었습니다.