Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 주사위 출력 시퀀스가 ​​주어졌을 때 주사위를 던진 플레이어의 수를 찾으십시오.

<시간/>

문자열 S와 숫자 X가 있다고 가정합니다. 주사위를 굴리는 M명의 다른 플레이어가 있습니다. 한 플레이어는 X가 아닌 다른 숫자가 나올 때까지 계속해서 주사위를 던집니다. 여기서 문자열 S에서 S[i]는 i번째 주사위를 던졌을 때의 숫자를 나타냅니다. M의 값을 찾아야 합니다. 한 가지 제약 조건은 S의 마지막 문자가 X가 될 수 없다는 것입니다. 따라서 예를 들어 string이 "3662123"이고 X =6이면 출력은 5가 됩니다. 이는 다음과 같이 설명할 수 있습니다. -

  • 첫 번째 플레이어가 3점을 얻었습니다.
  • 두 번째 플레이어는 6, 6, 2를 얻었습니다.
  • 세 번째 플레이어가 1점을 얻었습니다.
  • 네 번째 플레이어가 2점을 얻었습니다.
  • 다섯 번째 플레이어가 3점을 얻었습니다.

작업은 간단합니다. 문자열을 탐색하고 X가 아닌 문자 수를 계산하면 그 수가 답이 됩니다.

예시

#include<iostream>
using namespace std;
int countPlayers(string str, int x) {
   int count = 0;
   for (int i = 0; i < str.size(); i++) {
      if (str[i] - '0' != x)
      count++;
   }
   return count;
}
int main() {
   string s = "3662123";
   int x = 6;
   cout << "Number of players: " << countPlayers(s, x);
}

출력

Number of players: 5