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

Pythonで最初のN個の奇数の合計を求めるプログラム

この記事では、数値 n が与えられたときに、最初の n 個の正の奇数の合計を求める Python プログラムを紹介します。

例えば、入力が n = 10 の場合、最初の10個の奇数は [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] となり、その合計は 100 になります。

解法のポイント

この問題を解くには、以下の手順に従います。

  • 重要な性質として、最初の n 個の奇数の合計は常に n の2乗(n²)と等しいということが知られています。
  • したがって、結果を得るには単に n * n を返すだけで済みます。

実際に確認してみましょう。

  • 1 = 1²
  • 1 + 3 = 4 = 2²
  • 1 + 3 + 5 = 9 = 3²
  • 1 + 3 + 5 + 7 = 16 = 4²

このように、奇数を順に足していくと必ず平方数になるため、ループで合計を計算する必要はありません。これにより、O(1) の定数時間で答えを求めることができます。

実装例

以下に実装例を示します。

def solve(n):
   return n * n

n = 10
print(solve(n))

入力

10

出力

100

まとめ

「最初の n 個の奇数の合計は n² である」という数学的な性質を利用することで、ループ処理を使わずに非常にシンプルかつ高速に答えを求められます。大きな n に対しても瞬時に計算できるのがこのアプローチの魅力です。

  1. Pythonで配列(リスト)の合計を求める方法をわかりやすく解説

    この記事では、配列(リスト)の合計値を求めるという問題に対して、Pythonでの解決策とアプローチをわかりやすく解説します。 問題の定義 配列が入力として与えられたとき、その配列に含まれるすべての要素の合計を計算することを目標とします。 例えば、[1, 2, 3, 4, 5] という配列が与えられた場合、出力は 15 になります。 アプローチ1:ループを使った素朴な方法(総当たり法) 最も基本的な方法は、リストを先頭から順に走査し、各要素を合計用の変数に加算していくやり方です。手順は以下の通りです。 合計を格納する変数を 0 で初期化します。 for ループでリストの各要素を取り出し、順番に

  2. Pythonで数の奇数の約数(奇因子)の合計を求めるプログラム

    この記事では、「整数 n が与えられたとき、その数の奇数の約数(奇因子)の合計を求める」という問題の解き方を解説します。 問題文 整数 n が入力として与えられます。求めるのは、n の奇数の約数をすべて足し合わせた値です。 例えば n = 27 の場合、約数は 1, 3, 9, 27 のすべてが奇数であるため、合計は 1 + 3 + 9 + 27 = 40 となります。 アプローチのポイント この問題で最初に行うべきは、偶数の約数をすべて除外することです。 偶数の約数を取り除くには、n が 2 で割り切れなくなるまで繰り返し 2 で割ります。この操作によって n から 2 の因数が完全に