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

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

王林
Lepaskan: 2023-09-05 22:49:06
ke hadapan
769 orang telah melayarinya

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;
    }
    Salin selepas log masuk

    Output

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

    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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan