【C言語】for文を使って1から100までの和、1から1000までの和の計算

【C言語】for文を使って1から100までの和、1から1000までの和の計算

はじめに

for文の基本

1から100までの和を求める

1から1000までの和を求める

最適化方法

はじめに

この解説では、C言語を使用して「for文」を使い、1から100まで、1から1000までの数の和を求める方法について詳しく説明します。

「for文」は、繰り返し処理を行うための非常に強力な構造です。この文を使って、特定の範囲内の数値を順番に加算していくことができます。

for文の基本

「for文」は、以下の構文で記述されます。

for (初期化; 条件式; 更新式) {
    // 繰り返し処理
}
    

この構文で重要な部分は以下の通りです:

  • 初期化: ループが始まる前に実行される処理(通常はカウンタ変数の設定)
  • 条件式: ループを繰り返す条件(これが偽になるとループが終了します)
  • 更新式: ループが1回終わるごとに実行される処理(通常はカウンタ変数の増加)

例えば、以下のコードは1から10までの数字を表示する例です。

#include <stdio.h>

int main() {
    for (int i = 1; i <= 10; i++) {
        printf("%d\n", i);
    }
    return 0;
}
    

このコードは、変数「i」を1から10まで増加させ、各値を表示します。

1から100までの和を求める

次に、for文を使って1から100までの整数の和を求める方法を紹介します。

具体的には、以下のコードで1から100までの整数を順番に加算していき、その結果を表示します。

#include <stdio.h>

int main() {
    int sum = 0; // 和を格納する変数

    // 1から100までの和を求める
    for (int i = 1; i <= 100; i++) {
        sum += i; // sumにiを加算
    }

    printf("1から100までの和は %d です。\n", sum);
    return 0;
}
    

このコードでは、変数「sum」を0で初期化し、for文内で「i」を1から100まで加算していきます。最終的に、sumには1から100までの和が格納されます。

このプログラムを実行すると、以下の結果が得られます。

1から100までの和は 5050 です。
    

1から1000までの和を求める

次に、同様にfor文を使って、1から1000までの和を求める方法を紹介します。

この場合も基本的な流れは同じで、和を格納する変数を初期化し、for文で1から1000まで順番に加算します。

#include <stdio.h>

int main() {
    int sum = 0; // 和を格納する変数

    // 1から1000までの和を求める
    for (int i = 1; i <= 1000; i++) {
        sum += i; // sumにiを加算
    }

    printf("1から1000までの和は %d です。\n", sum);
    return 0;
}
    

このプログラムを実行すると、以下の結果が得られます。

1から1000までの和は 500500 です。
    

最適化方法

上記のコードで和を求める際、計算方法に関して最適化する方法もあります。

例えば、和を求める公式「n(n+1)/2」を使うと、1からnまでの和をより効率的に計算できます。

この公式を使ったコードは以下の通りです:

#include <stdio.h>

int main() {
    int n = 1000;
    int sum = n * (n + 1) / 2; // 和の公式を使う

    printf("1から1000までの和は %d です。\n", sum);
    return 0;
}
    

この方法を使用することで、for文を使用せずに和を即座に計算できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です