Heim > Backend-Entwicklung > C++ > Hauptteil

在C++中,将一个同时可以被其重排的数字重新排列

王林
Freigeben: 2023-09-05 22:49:06
nach vorne
642 人浏览过

在C++中,将一个同时可以被其重排的数字重新排列

我们给出一个整数类型的数字,假设为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 &vec_3)中

    • 当number为1时开始循环。在循环内,将vec_3设置为vec_3[number % 10]++,并将number设置为number / 10。

示例

#include
using namespace std;
void total_count(int number, vector &vec_3){
   while(number){
      vec_3[number % 10]++;
      number = number / 10;
   }
}
int Rearrangement(int number){
   vector vec(10, 0);
   total_count(number, vec);
   for(int i = 2; i < 10; i++){
      int temp = number * i;
      vector 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: "<
Nach dem Login kopieren

输出

如果我们运行上述代码,将会生成以下输出

Rearrangement of a number which is also divisible by it is: 300105
Nach dem Login kopieren

以上是在C++中,将一个同时可以被其重排的数字重新排列的详细内容。更多信息请关注PHP中文网其他相关文章!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!