我們給了一個數字 N 以及一個由 M 位數字組成的陣列。我們的工作是找到n個數 由給定的 M 位數字組成的可被 5 整除的數字。
讓我們來看一些範例來理解問題的輸入和輸出。
In -
N = 2 M = 3 arr = {5, 6, 3}
出局 -
2
有 2 N 個數字 35 和 65 可能被 5 整除。讓我們來看另一個例子。
輸入-
N = 1 M = 7 arr = {2, 3, 4, 5, 6, 7, 8}
輸出-
1
給定陣列中只有1 個1 位元數字可以被5 整除。因此,我們的任務是找到給定的 N 個數字可以被 5 整除的數字的數目。
數字必須以數字 0 或 5 結尾才能被 5 整除。讓我們看看演算法
以下是上述演算法的C 實作
#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; }
如果執行上面的程式碼,您將得到以下結果。
2
以上是用C++編寫的由M個數字組成的N位數中能被5整除的數字的詳細內容。更多資訊請關注PHP中文網其他相關文章!