Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm số người chơi tung xúc xắc khi trình tự đầu ra xúc xắc được đưa ra trong C ++

Giả sử chúng ta có một chuỗi S và một số X. Có M người chơi khác nhau tung xúc xắc. một người chơi tiếp tục tung xúc xắc cho đến khi anh ta nhận được một số khác X. Ở đây trong chuỗi S, S [i] đại diện cho số ở lần tung xúc xắc thứ i. Chúng ta phải tìm giá trị của M. Một hạn chế là ký tự cuối cùng trong S sẽ không bao giờ là X. Vì vậy, ví dụ, nếu chuỗi là “3662123” và X =6, đầu ra sẽ là 5. Điều này có thể được mô tả như sau -

  • Trình phát đầu tiên cuộn và nhận được 3
  • Trình phát thứ hai cuộn và có 6, 6 và 2
  • Người chơi thứ ba cuộn và có 1 người chơi
  • Người chơi thứ tư cuộn và có 2 người
  • Người chơi thứ năm cuộn và có 3 người

Nhiệm vụ rất đơn giản, chúng tôi sẽ duyệt qua chuỗi và đếm số ký tự không phải là X, số lượng sẽ là câu trả lời.

Ví dụ

#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);
}

Đầu ra

Number of players: 5