我們給一個整數型別的數字,假設為number。任務是重新排列number的數字,使得重新排列後的數字也能被給定的number整除。
輸入 - int number = 100035
輸出 #- 重新排列後能被number整除的數字是:300105
解釋 - 我們給一個整數number,也就是100035。現在,任務是重新排列這些給定的數字,使得形成的數字能被number整除 100035。因此,在重新排列數字後,我們得到了300105,它可以被數字100035整除。
輸入 - int number = 1000035
# - 重新排列的數字也可以被它整除:3000105
#解釋 - 我們給定一個整數數字"number",即1000035。現在,任務是重新排列這些給定的數字,使得形成的數字能夠被1000035整除。因此,在重新排列數字後,我們得到了3000105,它可以被數字1000035整除。
輸入 - int number = 28
#輸出 - 重新排列的數字也可以被它整除:-1
解釋 - 我們給定一個整數數字"number",即28。現在,任務是重新排列這些給定的數字,使得形成的數字能夠被28整除。因此,在重新排列數字後,我們得到了82,它不能被數字28整除,因此輸出為-1。
輸入一個整數類型的變量,假設為number,並將資料傳遞給函數Rearrangement(number)。
在函數Rearrangement(number)中
建立一個儲存整數類型變數的vector變量,假設為vec(10, 0)。
呼叫函數total_count(number, vec)並將number和vec作為參數傳遞給函數。
從i到2的迴圈開始,直到i小於10。在循環內,將temp設定為number * i。
建立一個儲存整數類型變數的vector變量,假設為vec_2(10, 0)。
呼叫函數total_count(number, vec_2)並將number和vec_2作為參數傳遞給函數。
檢查如果equal(vec.begin(), vec.end(), vec_2.begin()),則傳回temp。否則,返回-1。
在函數total_count(int number, vector
當number為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++中,將一個同時可以被其重排的數字重新排列的詳細內容。更多資訊請關注PHP中文網其他相關文章!