Tulis atur cara menggunakan C++ untuk mencari nombor N yang terdiri daripada digit ganjil

WBOY
Lepaskan: 2023-09-14 11:09:08
ke hadapan
1458 orang telah melayarinya

Tulis atur cara menggunakan C++ untuk mencari nombor N yang terdiri daripada digit ganjil

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.

Cari nombor Nth yang terdiri daripada digit ganjil

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.

Penjelasan Kod

Langkah 1

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

Di sini, kami membuat baris gilir dan memulakan pembolehubah cnt untuk mengira dan ans untuk menyimpan jawapan. Pada masa yang sama, kami menggunakan cin untuk mendapatkan input daripada pengguna dan memulakan tatasusunan dengan nombor pertama yang mungkin.

Langkah 2

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

Dalam kod di atas kita menyemak sama ada nombor Nth tersedia dalam nombor pertama yang mungkin, simpannya dalam tatasusunan dan tolak nombor yang ada dalam tatasusunan ke baris gilir jika ia tersedia dalam nombor pertama yang mungkin Jika nombor Nth ditemui dalam nombor, maka output diberikan

Langkah 3 - Cari nombor Nth dalam kemungkinan nombor seterusnya, jika nombor Nth tidak dijumpai kemudian tukar nombor dalam baris gilir.

9
Salin selepas log masuk

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!

Label berkaitan:
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