C++の強力な整数
3つの整数「a」と「b」および「limit」があると仮定します。タスクは、[a、limit]の範囲の数値を出力することです。これらの数値のリストは強力な整数であると言われ、
として表されます。a ^ i + b ^ j i>=0およびj>=0
例
入力-1:
a = 2
b = 5
limit = 10
出力:
[2, 3, 4, 5, 6, 7, 9]
説明: iとjごとに
2 ^ 0 + 5 ^ 0 =2、2 ^ 0 + 5 ^ 1 =6
2 ^ 1 + 5 ^ 0 =3、2 ^ 1 + 5 ^ 1 =7
2 ^ 2 + 5 ^ 0 =5、2 ^ 3 + 5 ^ 0 =9
この問題を解決するためのアプローチ
この特定の問題を解決するための力ずくのアプローチは、2つのネストされたループを取り、限界まで反復することです。次に、上限の各指数の2つの数値の合計を見つけ、結果の数値をリストに挿入します。
- 「a」、「b」、「limit」の3つの数字を取ります。
- 関数powerfulnumbers(int a、int b、int limit)は、数値「a」、「b」、および「limit」を入力として受け取ります。この関数は、a ^ i + b ^ j(i>=0およびj>=0)のようなすべての多冪数のリストを返します。
- 限界までの範囲で2つのネストされたループを取り、毎回、そのインデックスを掛けて多冪数を見つけます。
- 数値が範囲[a、limit]の間にある場合は、数値をセットに格納します(数値の重複を避けるため)。
- セットを繰り返し処理して、出力を印刷します。
例
#include <bits/stdc++.h> using namespace std; void powerfulNum(int a, int b, int limit) { set < int > s; for (int i = 1; i < limit; i *= a) { for (int j = 1; j < limit; j *= b) { if (i + j <= limit) { s.insert(i + j); } else break; if (b == 1) break; } if (a == 1) break; } for (auto it: s) { cout << it << " "; } } int main() { int a = 2; int b = 5; int limit = 10; powerfulNum(a, b, limit); return 0; }
上記のコードを実行すると、次のように出力が生成されます
出力
2 3 5 6 7 9
ここで、2から10の範囲のすべての多冪数は[2、3、4、6、7、9]です。
-
C++で数値文字列を整数に変換します
ここでは、数値文字列を整数型データに変換する方法を説明します。この問題は、atoi()関数を使用して解決できます。この関数は文字列を入力として受け取り、整数データに変換します。 atoi()関数はライブラリにあります。 Input: A number string “1234” Output: 1234 アルゴリズム Step 1: Take a number string Step 2: Convert it to integer using atoi() function Step 3: Print the result. Step 4: End サンプルコード
-
Pythonの強力な整数
=0に対してx^i + y ^ jに等しい場合、整数は強力であると言えます。すべてのリストを見つける必要があります。 -値がbound以下の強力な整数。 したがって、入力がx=2およびy=3のようで、境界が10の場合、出力は[2,3,4,5,7,9,10]となり、2 =2 ^ 0 +3^となります。 0 3 =2 ^ 1 + 3 ^ 0 4 =2 ^ 0 + 3 ^ 1 5 =2 ^ 1 + 3 ^ 1 7 =2 ^ 2 + 3 ^ 1 9 =2 ^ 3 + 3 ^ 0 10 =2 ^ 0 + 3 ^ 2 これを解決するには、次の手順に従います- a、bを0として初期化します re