C言語で等差数列(AP)の第n項を求めるプログラムの書き方
初項「a」、公差「d」、項数「n」が与えられたとき、その等差数列の第n項を求めるのが本記事の課題です。
プログラムの書き方を解説する前に、まず「等差数列」とは何かを確認しておきましょう。
等差数列(Arithmetic Progression)とは?
等差数列(算術数列)とは、隣り合う2つの項の差が常に一定である数列のことです。この一定の差を「公差」と呼びます。
例えば、初項 a = 5、公差 d = 1 とし、求めたい項が第3項(n = 3)だとします。この場合、数列は「5, 6, 7」となり、出力すべき値は 7 です。
第n項を求める公式
等差数列の各項は次のように表せます。
AP1 = a AP2 = a + (2-1) * d AP3 = a + (3-1) * d ... APn = a + (n-1) * d
これを一般化すると、第n項を求める公式は次のようになります。
AP = a + (n − 1) × d
入出力例
入力: a=2, d=1, n=5 出力: 6 説明: 数列は 2, 3, 4, 5, 6 となるため、第5項は 6 入力: a=7, d=2, n=3 出力: 11
解決のためのアプローチ
- 初項 A、公差 D、項数 N を受け取る。
- 公式「A + (N − 1) × D」を使って第N項を計算する。
- 計算結果を出力として返す。
アルゴリズム
開始
ステップ1 → 関数 int nth_ap(int a, int d, int n) 内で
(a + (n - 1) * d) を返す
ステップ2 → int main() 内で
入力値 a=2, d=1, n=5 を宣言・初期化する
関数 nth_ap(a, d, n) を呼び出した結果を表示する
終了
C言語プログラム
#include <stdio.h>
int nth_ap(int a, int d, int n) {
// 公式を使って第n項を求める
// t(n) = a(1) + (n-1)*d
return (a + (n - 1) * d);
}
// main関数
int main() {
// 初項
int a = 2;
// 公差
int d = 1;
// 求めたい項数 n
int n = 5;
printf("The %dth term of AP :%d\n", n, nth_ap(a,d,n));
return 0;
}
実行結果
The 5th term of the series is: 6
このように、等差数列の第n項はたった一つの公式「a + (n − 1) × d」で簡単に求められます。ループで順に足し合わせる方法(O(n))と比べて、この公式を使えばO(1)で計算できるため、非常に効率的です。
-
C言語で等比数列の和を求めるプログラムの書き方【初心者向け解説】
このプログラムでは、3つの入力値を受け取ります。1つ目は「a」(等比数列の初項)、2つ目は「r」(公比)、3つ目は「n」(和を求める項数)です。 等比数列とは、隣り合う項同士の比が常に一定である数列のことです。入力された「a」「r」「n」をもとに、a, ar, ar2, ar3, ar4, … という等比数列を生成し、その総和 a + ar + ar2 + ar3 + ar4 + … を計算します。 入力例1 a = 1 r = 0.5 n = 5 出力例1 1.937500 入力例2 a = 2 r = 2.0 n = 8 出力例2 510.000000 問題を解くためのアプローチ 入力値
-
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{(