【Python】文字列として表現された2つの数値を加算して文字列で返す方法
2つの文字列 S と T が与えられ、それぞれが整数を表しているとします。この2つの数値を加算し、その結果を同じく文字列として返す必要があります。
例えば、入力が "256478921657" と "5871257468" の場合、出力は "262350179125" になります。これは、256478921657 + 5871257468 = 262350179125 となるためです。
解決の手順
この問題は、以下のステップで解決できます。
SとTを文字列から整数に変換する- 2つの整数を加算する(
ret = S + T) - 結果の
retを文字列に変換して返す
Pythonでは int() 関数が任意精度の整数をサポートしているため、桁数の多い巨大な数値でもオーバーフローを気にせず計算できるのが大きな強みです。C++やJavaなど他の言語では、このような大きな数値の演算には専用のライブラリが必要になることがありますが、Pythonなら標準機能だけで簡単に実装できます。
実装例
理解を深めるために、以下のコードを見てみましょう。
class Solution:
def solve(self, a, b):
return str(int(a) + int(b))
ob = Solution()
print(ob.solve("256478921657", "5871257468"))
入力
"256478921657", "5871257468"
出力
262350179125
このように、solve メソッド内では引数 a と b をそれぞれ int() で整数に変換して加算し、最後に str() で文字列に戻して返しています。わずか1行の処理で、文字列同士の数値演算を実現できるシンプルかつ実用的なアプローチです。
-
Pythonで2つの数値を加算するプログラム:ビット演算による実装方法
この記事では、2つの数値を加算するという問題に対する解法とアプローチについて詳しく解説します。 問題の概要 2つの大きな数値が与えられ、それらを加算した結果を出力することが求められます。 最も単純なアプローチは、オペランド同士を「+」演算子で結ぶ方法です。また、2つの数値をリストなどのイテラブルに格納し、Python標準ライブラリに用意されている組み込み関数 sum() を利用する方法もあります。 しかし、これらのアプローチでは10進数に対して直接演算を行うため、計算コストが増大するという課題があります。 ビット演算を用いた別のアプローチ そこで次に、数値をビット単位で操作する別のアプローチを
-
Pythonで配列内の複数の数値の最大公約数(GCD)を求める方法
はじめに本記事では、Pythonを使って配列(リスト)内の2つ以上の数値から最大公約数(GCD:Greatest Common Divisor)を求める方法を解説します。問題の概要数値の配列が与えられ、そのすべての要素に共通する最大公約数を求めることが目的です。3つ以上の数値のGCDは、「引数として渡されたすべての数値に共通する素因数の積」として定義できます。また、隣り合う2つの数値のGCDを繰り返し計算していくことでも求められます。ここでは、後者のアプローチである「ペアごとのGCDを順番に計算する」方法を実装します。アルゴリズムの流れまず、リストの最初の2つの要素のGCDを計算します。次に、