> 백엔드 개발 > C++ > 본문

C++로 작성된 5로 나누어지는 M개의 숫자로 구성된 N개의 숫자

PHPz
풀어 주다: 2023-09-02 16:25:06
앞으로
943명이 탐색했습니다.

C++로 작성된 5로 나누어지는 M개의 숫자로 구성된 N개의 숫자

숫자 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로 끝나야 합니다.

Algorithm

  • 알고리즘이 주어진 배열에서 0과 5를 확인하는지 살펴보겠습니다. 2. 0과 5가 모두 있는 경우, 일의 자리에 숫자를 넣는 방법은 두 가지가 있습니다. 그렇지 않으면 숫자를 배치하는 방법이 있을 것입니다.
    • 카운트를 2로 초기화합니다.
    • 이제 나머지 위치는 각각 m - 1, m - 2, m - 3, ... n가지 방법으로 채울 수 있습니다.
    • 0부터 n - 1까지 반복하는 루프를 작성하세요.
      • 배열을 줄이세요.
      • 수에 곱하세요.
  • 숫자 0이나 5가 하나만 있는 경우 해당 숫자를 해당 자리에 넣는 방법은 한 가지뿐입니다.
    • 카운트를 2로 초기화합니다.
    • 이제 나머지 위치는 각각 m - 1, m - 2, m - 3, ... n가지 방법으로 채울 수 있습니다.
    • 0부터 n - 1까지 반복하는 루프를 작성하세요.
      • 배열을 줄이세요.
      • 수에 곱하세요.
  • 숫자 0이나 5가 없으면 5로 나누어지는 숫자를 만들 수 있습니다. 이때 -1이 반환됩니다.

Implementation

다음은 위 알고리즘을 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;
}
로그인 후 복사

Output

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

rreee

위 내용은 C++로 작성된 5로 나누어지는 M개의 숫자로 구성된 N개의 숫자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿