


Terjemah yang berikut ke dalam bahasa Cina: C++ Bahagikan nombor kepada dua bahagian yang boleh dibahagikan
Dalam soalan ini, kita diberikan rentetan yang boleh ditafsirkan sebagai nombor. Sekarang kita perlu membahagikan rentetan ini kepada dua bahagian supaya bahagian pertama boleh dibahagikan dengan A dan bahagian kedua boleh dibahagikan dengan B (diberikan dua integer kita). Contohnya -
Input : str = "123", a = 12, b = 3 Output : YES 12 3 "12" is divisible by a and "3" is divisible by b. Input : str = "1200", a = 4, b = 3 Output : YES 12 00 Input : str = "125", a = 12, b = 3 Output : NO
Sekarang, dalam masalah ini, kami akan melakukan beberapa pra-pengiraan untuk menjadikan program kami lebih pantas dan kemudian ia akan dapat berfungsi di bawah kekangan yang lebih tinggi.
Kaedah untuk mencari penyelesaian
Dalam kaedah ini kita akan menjalankan dua gelung dalam rentetan, gelung pertama dari mula ke akhir dan gelung kedua dari hujung ke permulaan. Sekarang, pada setiap titik, kita mengambil modulo integer yang dibentuk oleh an dalam gelung pertama dan b dalam gelung kedua, dan kemudian kita boleh mencari jawapannya.
Contoh
#include <bits/stdc++.h> using namespace std; void divisionOfString(string &str, int a, int b){ int n = str.length(); vector<int> mod_a(n+1, 0); // mod_a[0] = (str[0] - '0')%a; for (int i=1; i<n; i++) // front loop for calculating the mod of integer with a mod_a[i] = ((mod_a[i-1]*10)%a + (str[i]-'0'))%a; vector<int> mod_b(n+1, 0); mod_b[n-1] = (str[n-1] - '0')%b; int power10 = 10; // as we have assigned answer to last index for (int i= n-2; i>=0; i--){ // end loop for calculating the mod of integer with b mod_b[i] = (mod_b[i+1] + (str[i]-'0')*power10)%b; power10 = (power10 * 10) % b; } for (int i=0; i<n-1; i++){ // finding the division point if (mod_a[i] != 0) // we can skip through all the positions where mod_a is not zero continue; if (mod_b[i+1] == 0){ // now if the next index of mod_b is also zero so that is our division point cout << "YES\n"; /*******Printing the partitions formed**********/ for (int k=0; k<=i; k++) cout << str[k]; cout << " "; for (int k=i+1; k < n; k++) cout << str[k]; return; } } cout << "NO\n"; // else we print NO } // Driver code int main(){ string str = "123"; // given string int a = 12, b = 3; divisionOfString(str, a, b); return 0; }
Output
YES 12 3
Penjelasan kod di atas
Dalam kaedah ini, kita kini mengira baki nombor yang dibentuk oleh setiap bahagian. Nombor pertama kita hendaklah boleh dibahagikan dengan a, jadi kita menjalankan gelung ke hadapan dan menyimpan mod nombor itu dengan a. Untuk b, kami menjalankan gelung ke belakang dan menyimpan mod sekarang kerana kami tahu bahawa jika mod an pada sebarang kedudukan adalah sifar, dan mod b pada indeks seterusnya adalah sifar, ini akan menjadi jawapan kami, jadi kami mencetaknya .
Kesimpulan
Dalam tutorial ini kami menyelesaikan masalah membahagikan nombor kepada dua bahagian yang boleh dibahagikan. Kami juga mempelajari program C++ untuk masalah ini dan kaedah lengkap (generik) untuk menyelesaikannya. Kita boleh menulis program yang sama dalam bahasa lain seperti C, java, python dan bahasa lain. Kami harap anda mendapati tutorial ini membantu.
Atas ialah kandungan terperinci Terjemah yang berikut ke dalam bahasa Cina: C++ Bahagikan nombor kepada dua bahagian yang boleh dibahagikan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Butiran artikel ini C jenis pulangan fungsi, merangkumi asas (int, float, char, dan lain -lain), diperolehi (tatasusunan, petunjuk, struktur), dan jenis kekosongan. Pengkompil menentukan jenis pulangan melalui pengisytiharan fungsi dan pernyataan pulangan, menguatkuasakan

GULC adalah perpustakaan C berprestasi tinggi yang mengutamakan overhead yang minimum, inlining agresif, dan pengoptimuman pengkompil. Sesuai untuk aplikasi kritikal prestasi seperti perdagangan frekuensi tinggi dan sistem tertanam, reka bentuknya menekankan kesederhanaan, modul

Artikel ini menerangkan perisytiharan fungsi C vs definisi, argumen lulus (dengan nilai dan penunjuk), nilai pulangan, dan perangkap umum seperti kebocoran memori dan jenis ketidakcocokan. Ia menekankan pentingnya pengisytiharan modularity dan provi

Butiran artikel ini C berfungsi untuk penukaran kes rentetan. Ia menerangkan menggunakan ToUpper () dan Tolower () dari CType.H, meleleh melalui rentetan, dan mengendalikan terminator null. Perangkap biasa seperti melupakan ctype.h dan mengubahsuai literal rentetan adalah

Artikel ini mengkaji fungsi penyimpanan nilai pulangan C. Nilai pulangan kecil biasanya disimpan dalam daftar untuk kelajuan; Nilai yang lebih besar boleh menggunakan petunjuk untuk memori (timbunan atau timbunan), memberi kesan kepada seumur hidup dan memerlukan pengurusan memori manual. Secara langsung acc

Artikel ini menganalisis kegunaan pelbagai kata sifat "berbeza," meneroka fungsi tatabahasa, frasa umum (mis., "Berbeza," "berbeza"), dan aplikasi bernuansa dalam formal vs tidak formal

Artikel ini memperincikan penggunaan algoritma STL yang cekap dalam c. Ia menekankan pilihan struktur data (vektor vs senarai), analisis kerumitan algoritma (mis., Std :: Sort vs Std :: partial_sort), penggunaan iterator, dan pelaksanaan selari. Perangkap biasa seperti

Artikel ini menerangkan Perpustakaan Templat St Standard (STL), yang memberi tumpuan kepada komponen terasnya: bekas, iterator, algoritma, dan functors. Ia memperincikan bagaimana ini berinteraksi untuk membolehkan pengaturcaraan generik, meningkatkan kecekapan kod dan kebolehbacaan t
