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

指定した奇数までの奇数の平均を求める方法

指定した奇数までの奇数の平均を求めるのは、とてもシンプルな概念です。その数までの奇数をすべて見つけ、それらの合計を奇数の個数で割るだけで計算できます。

例えば、nまでの奇数の平均を求めたい場合は、1からnまでの奇数をすべて足し合わせ、その個数で割ればよいのです。

9までの奇数の平均は5になります。つまり、

1 + 3 + 5 + 7 + 9 = 25 ⇒ 25 ÷ 5 = 5

n(奇数)までの奇数の平均を計算する方法は、主に次の2つがあります。

  • ループを使用する方法
  • 数式を使用する方法

ループを使ってnまでの奇数の平均を求めるプログラム

nまでの奇数の平均を計算するには、nまでのすべての奇数を順に加算していき、最後に奇数の個数で割ります。

nまでの奇数の平均を計算するC言語のプログラムは以下の通りです −

サンプルコード

#include <stdio.h>
int main() {
    int n = 15,count = 0;
    float sum = 0;
    for (int i = 1; i <= n; i++) {
       if(i%2 != 0) {
          sum = sum + i;
          count++;
       }
   }
   float average = sum/count;
   printf("The average of odd numbers till %d is %f",n, average);
   return 0;
}

出力

The average of odd numbers till 15 is 8.000000

このプログラムでは、1からnまでの整数を順にチェックし、2で割った余りが0でない(奇数である)場合に合計に加算するとともにカウントを増やしています。ループ終了後、合計をカウントで割ることで平均が求まります。

数式を使ってnまでの奇数の平均を求めるプログラム

nまでの奇数の平均は、数学的な公式 (n+1)/2 を使えば一瞬で計算できます。ここでnは問題の条件となる奇数です。

この公式が成り立つ理由は、奇数が「1, 3, 5, ...」という公差2の等差数列をなしているためです。等差数列の平均は(初項+末項)÷2で表されるので、初項1・末項nの場合、平均は (1+n)/2 = (n+1)/2 となります。

nまでの奇数の平均を計算するプログラムは以下の通りです −

サンプルコード

#include <stdio.h>
int main() {
    int n = 15;
    float average = (n+1)/2;
    printf("The average of odd numbers till %d is %f",n, average);
   return 0;
}

出力

The average of odd numbers till 15 is 8.000000

ループを使う方法は時間計算量がO(n)であるのに対し、数式を使う方法はO(1)で済むため、大きなnに対しては数式による計算が圧倒的に効率的です。

  1. 【C言語】ある整数が2つの素数の和で表せるかどうかを判定するプログラム

    問題概要 与えられた正の整数 N が、2つの素数の和として表現できるかどうかを判定するプログラムを、C言語で作成します。 例えば 20 は「3 + 17」や「13 + 7」というように、複数の素数の組み合わせで表すことができます。一方で、11 のように2つの素数の和として表せない数も存在します。 考え方 まず、具体例を使って考えてみましょう。 20 = 3 + 17(どちらも素数) 20 = 13 + 7(どちらも素数) このように、ある数を2つの素数の和で表せるか調べるには、「小さい方の数 i」を 2 から順に増やしながら、「i と (N − i) がどちらも素数になる組み合わせが存在す

  2. C言語で指定した数値の掛け算九九表を出力する方法

    プログラムの概要このプログラムは、ユーザーが入力した任意の数値に対して、その掛け算九九表(乗算表)を出力するものです。C言語の基礎的な入出力処理と for ループの使い方を学ぶのに最適なサンプルです。アルゴリズム1. 九九表を作成したい数値を、ユーザーから入力として受け取ります。2. ループ変数 i の初期値を 1 に設定し、入力された数値との積を計算します。3. i の値を 1 ずつ増加させながら掛け算を繰り返し、i が 12 以下である間、計算結果を出力し続けます。サンプルコード/* 指定された数値の掛け算九九表を出力するプログラム */ #include <stdio.h>