数値 N と M 桁の配列が与えられます。私たちの仕事はn個の数字を見つけることです 指定された M 桁から構成される 5 で割り切れる数値。
問題の入力と出力を理解するために、いくつかの例を見てみましょう。
In -
N = 2 M = 3 arr = {5, 6, 3}
Out -
2
次で均等に割り切れる 2 つの N 数値 35 と 65 があります。 5.別の例を見てみましょう。
入力-
N = 1 M = 7 arr = {2, 3, 4, 5, 6, 7, 8}
出力-
1
指定された配列内の 5 で割り切れる 1 桁の数値は 1 つだけです。したがって、私たちのタスクは、与えられた N 個の数値から 5 で割り切れる数値の数を見つけることです。 < /p>
数値は、5 で割り切れる数字 0 または 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; }
上記のコードを実行すると、次の結果が得られます。以下の結果。
えええええ以上がC++ で記述された 5 で割り切れる M 個の数値で構成される N 桁の数値の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。