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

三角数パターンを出力するPythonプログラムの書き方

数値 n が与えられたとき、n 行からなる三角形のパターンを出力するプログラムを考えてみましょう。i 行目には、行番号 i をちょうど i 回繰り返した数字を表示します。

例えば、入力が n = 5 の場合、出力は次のようになります。

1
22
333
4444
55555

解き方のアプローチ

この問題は、以下の手順でシンプルに解くことができます。

  • i を 1 から n まで順番に繰り返します。
    • (10i) を 9 で割った整数部分に i を掛けた値を表示します。
    • 改行して次の行へ移ります。

実装例

それでは、実際のPythonコードを見てみましょう。

def solve(n):
   for i in range(1, n+1):
      print((10**i) // 9 * i)

n = 8
solve(n)

入力

8

出力

1
22
333
4444
55555
666666
7777777
88888888

仕組みの解説

このプログラムのポイントは (10**i) // 9 という計算式です。10 を i 乗した値を 9 で割ると、「1」が i 個並んだ数(レピュニットと呼ばれます)が得られます。これに i を掛けることで、数字 i が i 個並んだ数値を一瞬で作り出せるのです。

例えば i = 3 の場合、103 = 1000 を 9 で割ると 111 になり、さらに 3 を掛けると 333 が求まります。ループや文字列操作を使わず、算術演算だけでパターンを生成できるのがこの手法の魅力です。

  1. PythonでN番目のフィボナッチ数を求める方法|再帰と動的計画法を解説

    この記事では、Pythonを使ってN番目のフィボナッチ数を計算する方法を解説します。 フィボナッチ数とは フィボナッチ数は、次の漸化式によって定義される数列です。 Fn = Fn-1 + Fn-2 初期値は F0 = 0、F1 = 1 となります。したがって、フィボナッチ数列の最初のいくつかの項は以下のようになります。 0, 1, 1, 2, 3, 5, 8, 13, ………… フィボナッチ数を求めるには、大きく分けて「再帰」と「動的計画法」の2つのアプローチがあります。それぞれの実装方法をPythonスクリプトで見ていきましょう。 方法1:再帰を使うアプローチ まずは最も直感的な再帰による実

  2. PythonでN番目のカタラン数を計算する方法【再帰・動的計画法】

    本記事では、N番目のカタラン数(Catalan number)を求める方法について解説します。カタラン数とは、以下の漸化式で定義される自然数の数列です。$$c_{0} = 1\;and\; c_{n+1} = \displaystyle\sum\limits_{i=0}^nc_{i} c_{n-i}\; for n\geq 0 ;$$n = 0, 1, 2, 3, … に対するカタラン数は、1, 1, 2, 5, 14, 42, 132, 429, …… と続いていきます。カタラン数は、再帰(リカージョン)と動的計画法(DP)のどちらの手法でも求めることができます。それでは、それぞれの実装方法