C++でも割り切れる数の再配置
整数型の数値、たとえば数値が与えられます。タスクは、再配置後に形成された数が指定された数、つまり「数」で割り切れるような方法で、数字の数字を再配置することです。
このためのさまざまな入出力シナリオを見てみましょう-
入力 −int番号=100035
出力 −それによっても割り切れる数の再配置は次のとおりです:300105
説明 −「数値」として整数、つまり100035が与えられます。ここでのタスクは、形成された数値が100035で割り切れるように、これらの与えられた数字を再配置することです。したがって、数字を並べ替えると、数値100035で割り切れる300105が得られます。
入力 −int番号=1000035
出力 −それによっても割り切れる数の再配置は次のとおりです:3000105
説明 −'number'、つまり1000035として整数が与えられます。ここで、タスクは、形成された数が1000035で割り切れるように、これらの与えられた桁を再配置することです。したがって、桁を再配置した後、分割可能な3000105が得られます。番号1000035で。
入力 −int番号=28
出力 −それによっても割り切れる数の再配置は次のとおりです:-1
説明 −'number'として整数が与えられます。つまり28です。ここでのタスクは、形成された数が28で割り切れるように、これらの与えられた数字を再配置することです。数値28で割り切れるので、出力は-1です。
以下のプログラムで使用されているアプローチは次のとおりです
-
整数型の変数、たとえば数値を入力し、データを関数Rearrangement(number)に渡します。
-
関数Rearrangement(number)
の内部-
整数型変数を格納するベクトル型の変数を作成します。たとえば、vec(10、0)。
-
関数total_count(number、vec)を呼び出し、numberとvecをパラメーターとして関数に渡します。
-
ループFORをiから2まで開始し、iが10未満になるまでループ内で、tempをnumber*iに設定します。
-
整数型変数を格納するベクトル型の変数を作成します。たとえば、vec_2(10、0)。
-
関数total_count(number、vec_2)を呼び出し、numberとvec_2をパラメーターとして関数に渡します。
-
IF equal(vec.begin()、vec.end()、vec_2.begin())を確認してから、tempを返します。それ以外の場合は、-1を返します。
-
-
関数total_count(int number、vector
内&vec_3) -
番号が1のときにループを開始します。ループ内で、vec_3をvec_3 [number%10] ++として設定し、numberをnumber/10に設定します。
-
例
#include<bits/stdc++.h> using namespace std; void total_count(int number, vector<int> &vec_3){ while(number){ vec_3[number % 10]++; number = number / 10; } } int Rearrangement(int number){ vector<int> vec(10, 0); total_count(number, vec); for(int i = 2; i < 10; i++){ int temp = number * i; vector<int> vec_2(10, 0); total_count(temp, vec_2); if(equal(vec.begin(), vec.end(), vec_2.begin())){ return temp; } } return -1; } int main(){ int number = 100035; cout<<"Rearrangement of a number which is also divisible by it is: "<<Rearrangement(number); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます
Rearrangement of a number which is also divisible by it is: 300105
-
C++で多数が20で割り切れるかどうかを確認します
ここでは、数値が20で割り切れるかどうかを確認する方法を説明します。この場合、その数は非常に多い数です。したがって、数値を文字列として入力します。 数値は20で割り切れますが、それが10で割り切れると、10で割った後、残りの数値は2で割り切れます。したがって、ケースは単純です。最後の桁が0の場合は10で割り切れ、10で割り切れる場合は、最後から2番目の要素が2で割り切れ、数値は20で割り切れます。 例 #include <bits/stdc++.h> using namespace std; bool isDiv20(string num){ int n
-
C++のCHAR_BIT
CHAR_BITは、charのビット数です。これは、C++言語の「limits.h」ヘッダーファイルで宣言されています。 1バイトあたり8ビットです。 これがC++言語のCHAR_BITの例です 例 #include <bits/stdc++.h> using namespace std; int main() { int x = 28; int a = CHAR_BIT*sizeof(x); stack<bool> s; cout << "T