숫자 N과 M자리 숫자 배열이 제공됩니다. 우리의 임무는 n개의 숫자를 찾는 것입니다. 주어진 M 자리로 구성된 5로 나누어지는 숫자입니다.
문제의 입력과 출력을 이해하기 위해 몇 가지 예를 살펴보겠습니다.
In -
N = 2 M = 3 arr = {5, 6, 3}
Out -
2
5로 나누어 떨어지는 N 숫자 35와 65가 2개 있습니다. 또 다른 예를 살펴보겠습니다.
Input -
N = 1 M = 7 arr = {2, 3, 4, 5, 6, 7, 8}
Output -
1
주어진 배열에서 1자리 숫자 1개만 5로 나눌 수 있습니다. 따라서 우리의 임무는 주어진 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; }
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
rreee위 내용은 C++로 작성된 5로 나누어지는 M개의 숫자로 구성된 N개의 숫자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!