C++ mempunyai senarai besar fungsi untuk menyelesaikan masalah matematik. Salah satu fungsi matematik ialah mencari nombor ganjil ke-N bagi digit menggunakan kod. Artikel ini akan menerangkan kaedah lengkap mencari nombor ganjil digit dan memahami apa itu nombor ganjil dan apa nombor terdiri daripada nombor ganjil digit.
Nombor ganjil akan mempunyai baki apabila dibahagikan dengan 2, jadi beberapa nombor ganjil pertama ialah 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 . ..
Untuk mencari nombor yang diperlukan, kami mempunyai dua kaedah:
Kaedah 1 - Semak setiap nombor asli untuk melihat sama ada ia ganjil dan kira setiap nombor ganjil sehingga kiraan sama dengan n, jika dijumpai Jika nombor itu genap , maka jangan kira, iaitu langkau nombor genap dan kira nombor ganjil dan berikan nombor N yang ditemui.
Kaedah mencari nombor N yang terdiri daripada nombor digit ganjil ini mungkin mudah kerana kita hanya menyemak setiap nombor dan mengira nombor ganjil, tetapi dari segi pengaturcaraan komputer, kaedah ini mengambil masa yang lama untuk menyiapkan tugasan ini.
Kaedah 2 - Digit terakhir setiap nombor yang terdiri daripada digit ganjil boleh menjadi 1, 3, 5, 7, 9, jadi ia adalah nombor ganjil. Jadi kita mula-mula menyemak sama ada nombor N adalah 1, 3, 5, 7, 9 dan jika ya kita mendapat jawapannya jika tidak, kita beralih ke nombor lain yang mungkin iaitu 11, 13, 15, 17, 19 dan kemudian 21, 23, 25; , 27, 29. Ini membentuk corak: 1 * 10 + {nombor yang mungkin terakhir}. . cari nombor N yang terdiri daripada digit ganjil sahaja. Untuk memahami kod ini, mari kita pecahkan dan fahami setiap bahagiannya untuk memahami kod yang lengkap.
- Dapatkan n daripada pengguna dan mulakan pembolehubah yang diperlukan.
Last possible numbers are 1,3,5,7,9 Next possible numbers can be found by 1 * 10 + 1 =11 1 * 10 + 3 = 13 1 * 10 + 5 = 15 1 * 10 + 7 = 17 1* 10 + 9 = 19 i.e 11,13,15,17,19
- Semak sama ada nombor N adalah antara nombor awal yang mungkin dan simpan nombor ini dalam baris gilir.
#include<bits/stdc++.h> using namespace std; int main(){ queue<int> q; int cnt = 0, ans = 0; int n; cin >> n; int a[5]={1,3,5,7,9}; for(int i = 0; i < 5;i++){ cnt++; if(cnt == n) ans = a[i]; q.push(a[i]); } if(ans) cout << ans << "\n"; else{ while(true){ int x = q.front(); q.pop(); for(int j = 0; j < 5; j++) { int temp = x * 10 + a[j]; q.push(temp); cnt++; if(cnt == n) ans = temp; } if(ans) break; } cout << ans << "\n"; } return 0; }
Langkah 3 - Cari nombor Nth dalam kemungkinan nombor seterusnya, jika nombor Nth tidak dijumpai kemudian tukar nombor dalam baris gilir.
9
Akhir sekali, kami mengeluarkan setiap nombor daripada baris gilir dan menjana nombor yang mungkin seterusnya menggunakan formula { x * 10 + nombor ganjil terakhir } dan semak sama ada nilai cnt adalah sama dengan n.
KesimpulanDalam artikel ini, kami menghadapi masalah: bagaimana untuk mencari nombor ganjil Nth yang terdiri daripada digit ganjil, dan menemui dua kaedah untuk menyelesaikannya. Kaedah pertama adalah mudah, hanya semak setiap nombor dan langkau nombor genap, tetapi ia mengambil masa yang lebih lama untuk mengira.
Kaedah kedua ialah menggunakan baris gilir untuk menyimpan nombor ganjil di dalamnya dan gunakan formula di atas untuk mencari nombor yang mungkin seterusnya. Kerumitan kaedah ini ialah O(n).
Kami telah menulis program dalam C++ untuk mencari nombor N yang terdiri daripada digit ganjil sahaja; kami boleh menulis program ini dalam mana-mana bahasa lain seperti C, Python, Java atau bahasa pengaturcaraan lain. Saya harap anda mendapati artikel ini membantu dalam menyelesaikan masalah anda.
Atas ialah kandungan terperinci Tulis atur cara menggunakan C++ untuk mencari nombor N yang terdiri daripada digit ganjil. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!