Pythonで2つの通貨の変換率を調べるプログラム
3つの配列が与えられていると仮定します。 curr_a、curr_b、およびconv_rate。最初の配列にはいくつかの通貨名が含まれており、2番目の配列にも含まれています。配列conv_rateには、アイテムcurr_a[i]からcuur_b[i]への変換率が含まれています。 conv_rate [i]の項目は、curr_a[i]とcurr_b[i]の間の変換率です。これで、srcとdestの2つの通貨が与えられます。 srcからdestへの変換率を調べる必要があります。値を出力として返し、それが不可能な場合は0を返します。
したがって、入力がsrc ="INR"、dest ="JPY"、curr_a =["INR"、 "GBP"、 "EUR"]、curr_b =["GBP"、 "EUR"、 "JPY"]の場合、 、conv_rate =[0.009、1.17、129.67]の場合、出力は1.3654250999999997
になります。これを解決するには、次の手順に従います-
- temp:=デフォルト値として0を含む新しいマップ
- temp [src]:=1
- i:=0
- p:=True
- pとi<=温度のサイズ、do
- p:=False
- curr_aのx、curr_bのy、およびconv_rateのzごとに、
- を実行します。
- temp [x] * z> temp [y]がゼロ以外の場合、
- temp [y]:=temp [x] * z
- p:=True
- i:=i + 1
- temp [x] * z> temp [y]がゼロ以外の場合、
- i <=温度のサイズの場合、
- return temp [dest]
- それ以外の場合、
- 戻り値-1
例
理解を深めるために、次の実装を見てみましょう-
from collections import defaultdict def solve(src, dest, curr_a, curr_b, conv_rate): temp = defaultdict(int) temp[src] = 1 i = 0 p = True while p and i <= len(temp): p = False for x, y, z in zip(curr_a, curr_b, conv_rate): if temp[x] * z > temp[y]: temp[y] = temp[x] * z p = True i += 1 return temp[dest] if i <= len(temp) else -1 print(solve("INR", "JPY", ["INR", "GBP", "EUR"], ["GBP", "EUR", "JPY"], [0.009, 1.17, 129.67]))
入力
"INR", "JPY", ["INR", "GBP", "EUR"], ["GBP", "EUR", "JPY"], [0.009, 1.17, 129.67]
出力
1.3654251
-
グラフがPythonのすべての人によってトラバース可能かどうかを確認するプログラム
0からn-1までの番号が付けられたn個の頂点を含むグラフが与えられたとします。グラフは無向であり、各エッジには重みがあります。グラフには3種類の重みを設定でき、各重みは特定のタスクを示します。グラフをトラバースできるのは、ジャックとケーシーの2人です。エッジの重みが1の場合、ジャックはグラフをトラバースできます。重みが2の場合、ケーシーはグラフをトラバースできます。エッジの重みが3の場合、両方がグラフをトラバースできます。グラフを両方でトラバース可能にするために必要なエッジをすべて削除する必要があります。ジャックとケーシー。グラフをトラバース可能にするために削除するエッジの数を返します。トラバ
-
いいえが2の累乗であるかどうかを調べるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 数nが与えられた場合、与えられた数が2の累乗であるかどうかを確認する必要があります。 アプローチ 入力数を2で割り続けます。つまり、=n/2を繰り返します。 各反復で、n%2がゼロ以外になり、nが1でない場合、nは2の累乗ではないことを確認します。 nが1になると、2の累乗になります。 以下の実装を見てみましょう- 例 def isPowerOfTwo(n): if (n == 0): retur