再帰を使った最初の N 個の数の合計

CCBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、再帰を使って最初の N 個の数の合計を求める方法を学びます。ユーザーからの入力を受け取り、最初の N 個の数の合計を計算し、結果をユーザーに出力するプログラムを C 言語で書きます。再帰は、関数が自身を呼び出して問題を解決するプログラミングにおいて使用される手法です。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FunctionsGroup -.-> c/function_parameters("Function Parameters") c/FunctionsGroup -.-> c/recursion("Recursion") c/FileHandlingGroup -.-> c/create_files("Create Files") c/FileHandlingGroup -.-> c/read_files("Read Files") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/function_declaration -.-> lab-123342{{"再帰を使った最初の N 個の数の合計"}} c/function_parameters -.-> lab-123342{{"再帰を使った最初の N 個の数の合計"}} c/recursion -.-> lab-123342{{"再帰を使った最初の N 個の数の合計"}} c/create_files -.-> lab-123342{{"再帰を使った最初の N 個の数の合計"}} c/read_files -.-> lab-123342{{"再帰を使った最初の N 個の数の合計"}} c/user_input -.-> lab-123342{{"再帰を使った最初の N 個の数の合計"}} c/output -.-> lab-123342{{"再帰を使った最初の N 個の数の合計"}} end

ファイルの作成と 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 言語のプログラミングにおいて再帰を使って最初の N 個の数の合計を求める方法を学びました。ユーザー入力を受け取り、再帰関数を使って最初の N 個の整数の合計を計算し、その結果をユーザーに出力するプログラムを作成しました。