C言語で配列の合計を求める方法は?
C言語での数列の和を求める方法はいくつかあり、以下に一般的な方法を紹介します。
- ループによる加算: ループ構造を利用して数列の各項を繰り返し、加算して合計を求める手法。以下にサンプルコードを示す。
#include<stdio.h>
int main() {
int n; // 数列的长度
int sum = 0; // 存储求和结果
printf("请输入数列的长度:");
scanf("%d", &n);
int seq[n]; // 数列数组,长度为n
printf("请输入数列的元素:");
for (int i = 0; i < n; i++) {
scanf("%d", &seq[i]);
sum += seq[i];
}
printf("数列的和为:%d\n", sum);
return 0;
}
- 数式を利用する方法: 数列が明確な数式で表される場合は、数式から直接和を求めることができます。例えば、等差数列の和は、等差数列の和の公式「和 = n * (a1 + an) / 2」を使用して求めることができます。ただし、n は数列の項数、a1 は初項、an は末項を表します。
- 再帰関数を用いた階乗計算:再帰関数を用いて数列の和を計算する。この再帰関数は、数列をより小さなサブ問題に分割し、それが再帰関数の基本ケース(数列の長さが1)に到達するまで継続的に実行される。次に、サブ問題の結果が順番に返され、加算される。サンプルコードは次のとおり。
#include<stdio.h>
int sum_of_seq(int seq[], int n) {
if (n == 1) {
return seq[0];
} else {
return seq[n - 1] + sum_of_seq(seq, n - 1);
}
}
int main() {
int n; // 数列的长度
printf("请输入数列的长度:");
scanf("%d", &n);
int seq[n]; // 数列数组,长度为n
printf("请输入数列的元素:");
for (int i = 0; i < n; i++) {
scanf("%d", &seq[i]);
}
int sum = sum_of_seq(seq, n);
printf("数列的和为:%d\n", sum);
return 0;
}
各々の数列の特徴や要求に適した方法を選択して解くことができます。