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

Pythonで数列「n + nn + nnn + …」をm回計算するプログラムの作成方法

この記事では、正の整数 n と繰り返し回数 m が与えられたとき、n + nn + nnn + … のように同じ数字を連結した項を m 個足し合わせた数列の合計を求める Python プログラムを解説します。

例えば、n = 3、m = 5 の場合、計算対象となる数列は以下の通りです。

3 + 33 + 333 + 3333 + 33333 = 37035

アルゴリズム

処理の手順は以下のようになります。

  1. n と m を入力として受け取る。
  2. 数値 n を文字列に変換する。
  3. 合計値と文字列を初期化する。
  4. 残りの項を順番に足し合わせていく。
  5. 文字列を連結して n、nn、nnn… を生成する。
  6. 加算する前に、文字列を整数へ戻す。
  7. 最終的な合計を返す。

サンプルコード

# 数列の合計を求めるPythonプログラム
def sumofseries(n, m):
    str1 = str(n)
    sum1 = n
    sumofstr1 = str(n)
    for i in range(1, m):
        sumofstr1 = sumofstr1 + str1
        sum1 = sum1 + int(sumofstr1)
    return sum1

# ドライバーコード
n = int(input("Enter the value of n"))
m = int(input("Enter the value of m"))
sumofno = sumofseries(n, m)
print("SUM OF SERIES ::>", sumofno)

実行結果

Enter the value of n3
Enter the value of m5
SUM OF SERIES ::> 37035

コードの解説

このプログラムのポイントは、文字列の連結を利用している点です。

  • まず str() 関数で整数 n を文字列に変換します。
  • 変数 sum1 には最初の項である n を代入しておきます。
  • for ループでは、前の項の文字列に str1 を連結することで、「nn」「nnn」「nnnn」というように桁が一つずつ増えた項を作り出します。
  • 連結した文字列を int() で整数に戻してから sum1 に加算します。
  • ループが完了した時点で、m 個の項すべての合計が得られます。

この手法を使えば、複雑な数式を用いずに「同じ数字が並ぶ数」を簡単に生成できるため、コードが非常にシンプルで読みやすくなります。

  1. Pythonで学ぶ選択ソートの基本原理と実装方法をわかりやすく解説

    本記事では、選択ソート(Selection Sort)の基本的な仕組みと、Python 3.xでの実装方法について詳しく解説します。 選択ソートとは? 選択ソートは、ソートされていない部分から最小値の要素を繰り返し見つけ出し、それを先頭に移動させることで配列全体を整列していくアルゴリズムです。処理の過程では、与えられた配列が次の2つの部分配列に分けられます。 すでにソートが完了している部分配列 まだソートされていない部分配列 選択ソートの各イテレーション(反復処理)では、未ソート部分から最小要素を取り出し、ソート済み部分の末尾に挿入していきます。この操作を繰り返すことで、最終的に配列全体

  2. Pythonで正四面体の表面積を計算するプログラム(√3×a²の公式)

    本記事では、正四面体の表面積を求める問題の解き方とそのアプローチについて詳しく解説します。 問題文 正四面体の一辺の長さが与えられたとき、その正四面体の表面積を求める必要があります。 正四面体とは 正四面体(Tetrahedron)とは、三角形を底面としたピラミッドのような形状の立体図形です。4つの三角形の面(側面に3つ、底面に1つ)と、4つの頂点(角)を持つ立体オブジェクトです。 計算式 一辺の長さを a とすると、正四面体の表面積は次の公式で求められます。 表面積 = √3 × a² この公式をもとに、以下のように面積を計算する関数を定義します。 サンプルコード import math