【C言語】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文を使用せずに和を即座に計算できます。