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

【C言語】数列0.6、0.06、0.006、…の第n項までの合計を求めるプログラム

数列の性質

数列 0.6、0.06、0.006、0.0006、… は、各項が直前の項を10で割った値になっている等比数列です。初項 a = 0.6、公比 r = 0.1 であるため、公比が1より小さい場合に適用できる等比数列の和の公式を利用して合計を求めます。

計算式の導出

公比 r < 1 のとき、初項から第n項までの和 S は次の公式で表されます。

S = a × [1 − r^n] / (1 − r)

この数列に a = 6/10、r = 1/10 を代入すると、以下のように整理できます。

Sum = (6/10) × [1 − (1/10)^n] / (1 − 1/10)
Sum = (6/9) × [1 − (1/10)^n]
Sum = (2/3) × [1 − 1/10^n]

C言語による実装例

#include <stdio.h>
#include <math.h>

int main() {
    int n = 6;
    float sum = 2 * ((1 - 1 / pow(10, n))) / 3;
    printf("sum = %f", sum);
    return 0;
}

実行結果

sum = 0.666666

動作の解説

n = 6 の場合、(1/10)^6 = 0.000001 となるため、S = (2/3) × (1 − 0.000001) ≈ 0.666666 が得られます。実際に各項を足し合わせると、0.6 + 0.06 + 0.006 + 0.0006 + 0.00006 + 0.000006 = 0.666666 となり、公式による計算結果と一致することが確認できます。

なお、累乗の計算に pow() 関数を使用しているため、<math.h> ヘッダーのインクルードが必要です。GCCなどの環境でコンパイルする際は、数学ライブラリをリンクするために -lm オプションを付与してください。

  1. C言語の関数の分類とは?引数と戻り値による4つのカテゴリを解説

    C言語における関数は、引数(ひきすう)の有無と戻り値(返り値)の有無という2つの観点から、以下の4つのカテゴリに分類できます。引数なし・戻り値なしの関数引数なし・戻り値ありの関数引数あり・戻り値なしの関数引数あり・戻り値ありの関数それぞれのカテゴリについて、サンプルコードと実行結果を交えながら詳しく見ていきましょう。1. 引数なし・戻り値なしの関数このタイプの関数は、呼び出し元からデータを受け取らず、計算結果も返しません。関数内で入力・処理・表示をすべて完結させるため、単純な処理に向いています。サンプルコード#include<stdio.h>main() {  

  2. C言語でcos(x)級数の合計を計算するプログラム

    本記事では、角度 x と項数 n が与えられたときに、cos(x)級数の合計を求めるC言語プログラムを解説します。ここで、x は余弦(コサイン)を求める角度、n は cos(x) 級数に含める項の数を表します。cos(x)とはcos(x) は三角関数の一つで、角度 x に対する余弦の値を計算するために使用される関数です。単位円上では、角度 x における点の x座標が cos(x) の値に対応します。数式cos(x) は以下のように無限級数(マクローリン展開)で表すことができます。$$\cos (x) = \displaystyle\sum\limits_{k=0}^\infty \frac{(