Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

【C言語入門】等比数列の和を計算するプログラムの作り方

本記事では、C言語を使って等比数列の和を計算するプログラムの作成方法を解説します。アルゴリズム、フローチャート、サンプルコード、実行結果まで順を追って説明するので、C言語の学習や繰り返し処理・べき乗計算の理解に役立ててください。

問題

キーボードから2つの整数 x(初項)と n(項数)を読み込み、次の等比数列の和を計算して出力するプログラムを作成します。

1 + x + x² + x³ + x⁴ + …… + xⁿ

計算後、x の値、n の値、および合計(sum) を画面に表示します。

なお、等比数列とは隣り合う項の比が一定となる数列のことです。この問題では各項を「x のべき乗」として表現し、0乗から n乗まで順番に足し合わせていきます。

解法の考え方

C言語にはべき乗を求めるための標準ライブラリ関数 pow(x, i)(math.h ヘッダ)が用意されています。これを利用して、forループで i を 0 から n まで変化させながら各項を加算することで、等比数列の和を求めることができます。

アルゴリズム

等比数列の和を計算するための手順は以下の通りです。

  • ステップ1: 開始する
  • ステップ2: 繰り返し処理に入る
  • ステップ3: 実行時に x と n の値を読み込む
  • ステップ4: もし n > 0 ならば
    • ステップ4.1: i = 0 から n まで繰り返す
      • ステップ4.1.1: sum = sum + pow(x, i)
      • ステップ4.1.2: i = i + 1
    • ステップ4.2: x、n、sum を出力する
  • ステップ5: それ以外の場合
    • ステップ5.1: 「n の値が無効です」と出力する
    • ステップ5.2: ステップ2 へ戻る(ジャンプ)
  • ステップ6: if文を終了する
  • ステップ7: 停止する

フローチャート

上記アルゴリズムの流れを図に表すと、以下のようになります。

【C言語入門】等比数列の和を計算するプログラムの作り方

プログラム

以下が、等比数列の和を計算するC言語プログラムです。

#include <stdio.h>
#include <conio.h>
#include <math.h>
main(){
    int x,n,sum=0,i;
    start:
    printf("enter the values for x and n:");
    scanf("%d%d",&x,&n);
    if(n>0){
        for(i=0;i<=n;i++){
            sum = sum+pow(x,i);
        }
        printf("The sum of the geometric progression is:%d",sum);
    }
    else{
        printf("not a valid n:%d value",n);
        getch();
        goto start;
    }
}

プログラムのポイント

  • pow(x, i): x の i 乗を計算する math.h の関数です。
  • goto start;: n に 0 以下の値が入力された場合、再び入力処理へ戻るために使用しています。
  • getch();: conio.h で定義される関数で、キー入力を1文字受け取ることで画面表示を一時停止させる役割があります。

実行結果

上記のプログラムをコンパイルして実行すると、以下のような結果が得られます。

enter the values for x and n:4 5
The sum of the geometric progression is:1365

この例では x=4、n=5 を入力したため、1 + 4 + 16 + 64 + 256 + 1024 = 1365 という計算結果が出力されています。

まとめ

本記事では、C言語における等比数列の和の計算方法を学びました。pow() 関数と for ループを組み合わせることで、べき乗の累積和を簡単に求められることが分かります。また、不正な入力値に対して goto 文で再入力を促すエラー処理の考え方も参考になるでしょう。

  1. Javaで商と剰余(余り)を計算するプログラムの書き方

    この記事では、Javaで商(クォーシェント)と剰余(リメインダー)を計算する方法をわかりやすく解説します。商と剰余は、次の2つのシンプルな式で求めることができます。商 = 被除数 ÷ 除数剰余 = 被除数 % 除数(%は剰余演算子)商と剰余の数学的な定義整数 a と 0 以外の整数 d が与えられたとき、a = qd + r かつ 0 ≤ r < |d| を満たす整数 q と r の組み合わせは必ず一意に存在することが証明されています。このとき、q を商、r を剰余(余り)と呼びます。以下に具体的なイメージを示します。入力例今回の入力は次のとおりです。被除数の値: 50 除数: 3出力例期待さ

  2. 【Python】数値nを入力してn+nn+nnnを計算するプログラムの書き方

    特定のパターンに従った数値計算を行いたい場合、まずユーザーから値nを入力として受け取ります。続いて、2つの変数にそれぞれ「nn」と「nnn」のパターンで生成した値を代入し、それらの合計を求めます。 たとえばnが4の場合、「4 + 44 + 444」を計算することになり、結果は492となります。 サンプルコード my_input = int(input(Enter a value for n...)) temp_val = str(my_input) t_1 = temp_val + temp_val t_2 = temp_val + temp_val + temp_val my_result