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

C言語で等差数列(A.P.)の和を求めるプログラムの作成方法


問題

等差数列(Arithmetic Progression:A.P.)の級数の和を求めるプログラムを作成します。ユーザーは実行時に「初項」「項の総数」「公差」の3つの値を入力する必要があります。

解法

等差数列とは、隣り合う2つの数の差(公差)が常に一定である数列のことです。ここでは、項の総数を Tn として扱います。

等差数列の和と第 n 項は、それぞれ以下の公式で求められます。

等差数列の和:Sn = n/2 × (2a + (n − 1) d)
第 n 項:Tn = a + (n − 1) d

アルゴリズム

以下の手順に従って、等差数列の和を計算します。

ステップ1:変数を宣言する。
ステップ2:sum = 0 で初期化する。
ステップ3:実行時に初項 a を入力する。
ステップ4:実行時に項の総数 num を入力する。
ステップ5:実行時に公差 diff を入力する。
ステップ6:次の公式を使って sum を計算する。
  sum = (num * (2 * a + (num - 1) * diff)) / 2
ステップ7:次の公式を使って最終項 tn を計算する。
  tn = a + (num - 1) * diff
ステップ8:forループで処理する。
  i = a; i <= tn; i = i + diff
  i. if(i != tn) の場合、
    printf("%d + ", i);
  ii. それ以外の場合、
    printf("%d = %d", i, sum);
ステップ9:改行を出力して終了する。

プログラム

以下は、等差数列の級数の和を求めるC言語プログラムです。

#include <stdio.h>
int main() {
    int a, num, diff, tn, i;
    int sum = 0;
    printf(" enter 1st no of series: ");
    scanf("%d", &a);
    printf(" enter total no's in series: ");
    scanf("%d", &num);
    printf("enter Common Difference: ");
    scanf("%d", &diff);
    sum = (num * (2 * a + (num - 1) * diff)) / 2;
    tn = a + (num - 1) * diff;
    printf("\n sum of A.P series is : ");
    for(i = a; i <= tn; i = i + diff){
        if(i != tn)
            printf("%d + ", i);
        else
            printf("%d = %d", i, sum);
    }
    printf("\n");
    return 0;
}

実行結果

上記のプログラムを実行すると、以下のような出力が得られます。

enter 1st no of series: 3
enter total no's in series: 10
enter Common Difference: 5
sum of A.P series is: 3 + 8 + 13 + 18 + 23 + 28 + 33 + 38 + 43 + 48 = 255

enter 1st no of series: 2
enter total no's in series: 15
enter Common Difference: 10
sum of A.P series is: 2 + 12 + 22 + 32 + 42 + 52 + 62 + 72 + 82 + 92 + 102 + 112 + 122 + 132 + 142 = 1080

解説

このプログラムでは、まず scanf 関数を使って初項・項数・公差を入力として受け取ります。その後、等差数列の和の公式 Sn = n/2 × (2a + (n−1)d) を用いて合計値を一度に計算し、同時に最終項 Tn も求めています。

forループでは初項から最終項まで公差ずつ増加させながら各項を出力します。途中の項は「+」記号で連結し、最終項に到達した時点で「= 合計」の形式で結果を表示することで、計算過程がひと目でわかる出力を実現しています。

  1. Pythonで配列の合計を求める方法を徹底解説

    この記事では、Pythonを使って配列(リスト)の合計を求める方法について詳しく解説します。 問題文 問題: 配列が与えられたとき、その配列に含まれるすべての要素の合計を計算してください。 最も基本的なアプローチは、配列全体を走査し、各インデックスの要素を順番に加算していく方法です。ここでは、まず組み込み関数を活用したシンプルな実装例を見ていきましょう。 方法1:組み込み関数 sum() を使う Pythonには、イテラブルなオブジェクトの合計を一発で計算できる組み込み関数 sum() が用意されています。これを使えば、コードは非常に簡潔になります。 サンプルコード # 合計を求める関数 de

  2. Pythonで配列(リスト)の合計を求める方法をわかりやすく解説

    この記事では、配列(リスト)の合計値を求めるという問題に対して、Pythonでの解決策とアプローチをわかりやすく解説します。 問題の定義 配列が入力として与えられたとき、その配列に含まれるすべての要素の合計を計算することを目標とします。 例えば、[1, 2, 3, 4, 5] という配列が与えられた場合、出力は 15 になります。 アプローチ1:ループを使った素朴な方法(総当たり法) 最も基本的な方法は、リストを先頭から順に走査し、各要素を合計用の変数に加算していくやり方です。手順は以下の通りです。 合計を格納する変数を 0 で初期化します。 for ループでリストの各要素を取り出し、順番に