Rumah > Artikel > pembangunan bahagian belakang > Sebilangan digit N yang terdiri daripada nombor M yang boleh dibahagi dengan 5 ditulis dalam C++
Kami diberi nombor N dan susunan digit M. Tugas kita ialah mencari n nombor Nombor boleh dibahagi dengan 5 yang terdiri daripada digit M yang diberi.
Mari lihat beberapa contoh untuk memahami input dan output masalah.
Masuk -
N = 2 M = 3 arr = {5, 6, 3}
Keluar -
2
Terdapat 2 N nombor 35 dan 65 yang mungkin boleh dibahagi sama rata dengan 5. Mari kita lihat contoh lain.
Input -
N = 1 M = 7 arr = {2, 3, 4, 5, 6, 7, 8}
Output -
1
Hanya 1 nombor 1 digit dalam tatasusunan yang diberikan boleh dibahagi dengan 5. Oleh itu, tugas kita ialah mencari bilangan nombor yang boleh dibahagi dengan 5 nombor N yang diberi.
Nombor mesti berakhir dengan nombor 0 atau 5 untuk dibahagi dengan 5. Mari lihat algoritma
Berikut ialah pelaksanaan C++ bagi algoritma di atas
#include <bits/stdc++.h> using namespace std; int numbers(int n, int m, int arr[]) { bool isZeroPresent = false, isFivePresent = false; int numbersCount = 0; if (m < n) { return -1; } for (int i = 0; i < m; i++) { if (arr[i] == 0) { isZeroPresent = true; } if (arr[i] == 5) { isFivePresent = true; } } if (isZeroPresent && isFivePresent) { numbersCount = 2; for (int i = 0; i < n - 1; i++) { m--; numbersCount = numbersCount * m; } } else if (isZeroPresent || isFivePresent) { numbersCount = 1; for (int i = 0; i < n - 1; i++) { m--; numbersCount = numbersCount * m; } } else { return -1; } return numbersCount; } int main() { int arr[] = {5, 6, 3}; cout << numbers(2, 3, arr) << endl; return 0; }
Jika anda menjalankan kod di atas, anda akan mendapat keputusan berikut.
rreeeeAtas ialah kandungan terperinci Sebilangan digit N yang terdiri daripada nombor M yang boleh dibahagi dengan 5 ditulis dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!