C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

カードゲームの勝者を見つけるためのC++プログラム


数n、サイズがそれぞれk1とk2の2つの配列AとBがあるとします。面白いカードゲームをしているアマルとビマラレ。 1からnまでの番号が付けられたn枚のカードがあります。最初に、カードはそれらの間で配布されます。ゲームは次のように進行します。各ターンで、各プレイヤーは自分のカードの1つ(好きな方)を取り、テーブルに置きます。これにより、他のプレイヤーは自分が選択したカードを見ることができなくなります。その後、両方のカードが公開され、カード番号が大きいプレイヤーが両方のカードを手札に取ります。すべてのカードは何度でもプレイできます。アマルがプレイするカードを表し、Bはビマルがプレイするカードを表します。カードを持っていない場合、プレイヤーは負けます。最終的な勝者を見つける必要があります。

したがって、入力がn=5のような場合。 A =[3、2]; B =[5、1、4]の場合、出力はBimalになります。これは、最初に(3、5)をプレイし、Bimalがすべてのカードを取り、次に(3、1)をプレイし、次にAmalが両方のカードを取り、次に(3 、4)Bimalがすべてを取り、次にAmalが1をプレイした場合、Bimalはカード5でそれらを取ります。そのため、Amalの手札にはカードがありません。

ステップ

これを解決するには、次の手順に従います-

d := 0
e := 0
for initialize i := 0, when i < size of A, update (increase i by 1),
do:
   f := A[i]
   if d < f, then:
      d := f
for initialize i := 0, when i < size of A, update (increase i by 1),do:
   f := A[i]
   if e < f, then:
      e := f
if d > e, then:
   return "Amal"
Otherwise
   return "Bimal"

理解を深めるために、次の実装を見てみましょう-

#include<bits/stdc++.h>
using namespace std;
string solve(int n, vector<int> A, vector<int> B){
   int d = 0;
   int e = 0;
   for(int i = 0; i<A.size(); i++){
      int f = A[i];
      if (d < f)
      d = f;
   }
   for(int i = 0; i<A.size(); i++){
      int f = A[i];
      if(e < f)
      e = f;
   }
   if (d > e)
      return "Amal";
   else
      return "Bimal";
}
int main(){
   int n = 5;
   vector<int> A = {3, 2};
   vector<int> B = {5, 1, 4};
   cout << solve(n, A, B) << endl;
}

入力

5, {3, 2}, {5, 1, 4}

出力

Bimal

  1. LCMを見つけるためのC++プログラム

    2つの数値の最小公倍数(LCM)は、両方の倍数である最小公倍数です。 例:15と9の2つの数字があるとします。 15 = 5 * 3 9 = 3 * 3 したがって、15と9のLCMは45です。 2つの数値のLCMを見つけるプログラムは次のとおりです- 例 #include <iostream> using namespace std; int main() {    int a=7, b=5, lcm;    if(a>b)    lcm = a;    else    

  2. GCDを見つけるためのC++プログラム

    2つの数値の最大公約数(GCD)は、両方を除算する最大の数値です。 例:45と27の2つの数字があるとします。 45 = 5 * 3 * 3 27 = 3 * 3 * 3 したがって、45と27のGCDは9です。 2つの数値のGCDを見つけるプログラムは次のとおりです。 例 #include <iostream> using namespace std; int gcd(int a, int b) {    if (b == 0)    return a;    return gcd(b, a % b); } int