C++プログラミングで指定された条件下で変更されている場合の最終的なXとYを見つけます
2つの正の整数XとYの初期値があるとします。XとYの最終値を見つけて、以下に説明するように変更が加えられるようにします-
- step1 − X=0およびY=0の場合はプロセスを終了し、それ以外の場合はステップ2に進みます
- step2 − X> =2Yの場合は、X =X – 2Yに設定し、step1に進みます。それ以外の場合は、step3に進みます。
- step3 − Y> =2Xの場合は、Y =Y – 2Xに設定し、ステップ1に進みます。それ以外の場合は、プロセスを終了します。
XとYの数は[0と1018]の範囲にあるため、ブルートフォースアプローチを使用できます。
例
#include<iostream> using namespace std; void alterNumber(long long x, long long y) { while (1) { if (x == 0 || y == 0) break; if (x >= 2 * y) x = x % (2 * y); else if (y >= 2 * x) y = y % (2 * x); else break; } cout << "X: " << x << "\n" << "Y: " << y; } int main() { long long x = 12, y = 5; alterNumber(x, y); }
出力
X: 0 Y: 1
-
LCMとHCFがC++で与えられたときに他の数を見つけます
数値Aがあり、LCMとGCDの値があるとすると、別の数値Bを見つける必要があります。A=5、LCMが25、HCF =4の場合、別の数値は4になります。 $$𝐴∗𝐵 =𝐿𝐶𝑀∗𝐻𝐶𝐹$$ $$𝐵=\frac {LCM * HCF} {A} $$ 例 #include <iostream> using namespace std; int anotherNumber(int A, int LCM, int GCD) { return (LCM * GCD) / A; } int main() { int A
-
行と列の最大の要素がPythonで指定されている場合に、元の行列を見つけます
それぞれサイズNとMの2つの配列AとBがあり、1つのN X Mバイナリ行列もあるとします。1は元の行列に正の整数があったことを示し、0は位置は元の行列にも0を保持しています。 A [i]がi番目の行の最大要素を示し、B [j]がj番目の列の最大要素を示すように、元の行列を生成する必要があります。 したがって、入力がA =[4、2、3]、B =[3、1、0、0、4、0、5]行列のような場合、出力は行列になります これを解決するには、次の手順に従います- N:=Aのサイズ M:=Bのサイズ 0からNの範囲のiの場合、実行 0からMの範囲のjについては、次のようにします