在 C++ 中也可以被它整除的数字的重新排列
我们得到了一个整数类型的数字,比方说,数字。任务是以这样的方式重新排列数字数字,即重新排列后形成的数字也可以被给定的数字(即“数字”)整除。
让我们看看这个的各种输入输出场景 -
输入 - 整数编号 = 100035
输出 - 也可以被它整除的数字的重新排列是:300105
解释 - 我们得到一个整数作为“数字”,即 100035。现在,任务是重新排列这些给定的数字,使形成的数字可以被 100035 整除。因此,在重新排列数字后,我们得到 300105,即可以被数字 100035 整除。
输入 - 整数数 = 1000035
输出 - 也可以被它整除的数字的重新排列是:3000105
解释- 我们得到一个整数作为“数字”,即 1000035。现在,任务是重新排列这些给定的数字,使形成的数字可以被 1000035 整除。因此,重新排列数字后,我们得到 3000105,即可以被数字 1000035 整除。
输入 - 整数数 = 28
输出 - 也可以被它整除的数字的重新排列是:-1
解释- 我们得到一个整数作为“数字”,即 28。现在,任务是重新排列这些给定的数字,使形成的数字可以被 28 整除。因此在重新排列数字后,我们得到了 82,它不是“ t 可被数字 28 整除,因此输出为 -1。
下面程序中使用的方法如下
输入一个整数类型的变量,比如 number 并将数据传递给函数Rearrangement(number )。
函数内部 Rearrangement(number)
创建一个 vector 类型的变量,它存储整数类型的变量,比如 vec(10, 0)。
调用该函数total_count(number, vec)并将 number 和 vec 作为参数传递给该函数。
从 i 到 2 开始循环 FOR,直到 i 小于 10。在循环内,将 temp 设置为 number * i。
创建一个存储整数类型变量的向量类型的变量,比方说,vec_2(10, 0)。
调用函数 total_count(number, vec_2) 并将 number 和 vec_2 作为参数传递给函数。
检查 IF equal( , , vec_ ) 然后返回 temp。否则,返回-1。vec.begin()vec.end()2.begin()
在函数内 total_count(int number, vector<int> &vec_3)
开始循环 WHILE 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(number);
return 0;
}
如果我们运行上面的代码,它将生成以下输出
也可以被它整除的数的重排是: 300105
以上是 在 C++ 中也可以被它整除的数字的重新排列 的全部内容, 来源链接: utcz.com/z/347473.html