Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Dalam C++, susun semula nombor yang juga boleh disusun semula olehnya

Dalam C++, susun semula nombor yang juga boleh disusun semula olehnya

王林
王林ke hadapan
2023-09-05 22:49:06744semak imbas

Dalam C++, susun semula nombor yang juga boleh disusun semula olehnya

Kami diberi beberapa jenis integer, dengan mengandaikan ia adalah nombor. Tugasnya adalah untuk menyusun semula digit nombor supaya nombor yang disusun semula juga boleh dibahagikan dengan nombor yang diberikan.

LET kami melihat senario input dan output yang berbeza:

Input - int number = 100035

Output - Nombor yang boleh dibahagikan dengan nombor selepas penyusunan semula adalah: 300105

planation - Kami memberikan a Nombor integer, iaitu 100035. Sekarang, tugasnya adalah untuk menyusun semula nombor yang diberikan ini supaya nombor yang terbentuk boleh dibahagikan dengan nombor 100035. Jadi selepas menyusun semula nombor kita mendapat 300105 yang boleh dibahagikan dengan nombor 100035. . Sekarang, tugasnya adalah untuk menyusun semula nombor yang diberikan ini supaya nombor yang terbentuk boleh dibahagikan dengan 1000035. Jadi selepas menyusun semula nombor kita mendapat 3000105 yang boleh dibahagikan dengan nombor 1000035.

Input - nombor int = 28

Output - Nombor yang disusun semula juga boleh dibahagikan dengannya: -1

Penjelasan - Kami diberi nombor integer "nombor". Sekarang, tugasnya adalah untuk menyusun semula nombor yang diberikan ini supaya nombor yang terbentuk boleh dibahagikan dengan 28. Jadi selepas menyusun semula nombor kita mendapat 82 yang tidak boleh dibahagikan dengan nombor 28 jadi outputnya ialah -1.

Kaedah yang digunakan dalam atur cara di bawah adalah seperti berikut

Masukkan pembolehubah jenis integer, dengan mengandaikan ia adalah nombor, dan hantar data ke fungsi Susunan Semula(nombor).

Dalam fungsi Penyusunan Semula(nombor)

buat pembolehubah vektor yang menyimpan pembolehubah jenis integer, dengan mengandaikan ia adalah vec(10, 0).

  • Panggil fungsi total_count(nombor, vec) dan hantar nombor dan vec sebagai parameter kepada fungsi.

  • Mulakan dengan gelung dari i hingga 2 sehingga i kurang daripada 10. Di dalam gelung, tetapkan suhu kepada nombor * i.

    • Buat pembolehubah vektor yang menyimpan pembolehubah jenis integer, dengan mengandaikan ia ialah vec_2(10, 0).

    • Panggil fungsi total_count(nombor, vec_2) dan hantar nombor dan vec_2 sebagai parameter kepada fungsi.

    • Semak sama ada sama(vec.begin(), vec.end(), vec_2.begin()), kemudian kembalikan temp. Jika tidak, -1 dikembalikan.

    • Dalam fungsi total_count(int number, vector &vec_3)
    • mulakan gelung apabila nombor ialah 1. Di dalam gelung, tetapkan vec_3 kepada vec_3[nombor % 10]++ dan nombor kepada nombor/10.
  • Contoh
  • #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;
    }

    Output

      Jika kita menjalankan kod di atas, output berikut akan dihasilkan
    • Rearrangement of a number which is also divisible by it is: 300105

Atas ialah kandungan terperinci Dalam C++, susun semula nombor yang juga boleh disusun semula olehnya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam