PAT Grade A-Analog Type-1042 Ideas de resolución de problemas de la máquina barajadora

1042 Máquina de barajar (20 分)

Inserte la descripción de la imagen aquí

Ideas

Transforma la matriz varias veces por adelantado

Código

#include <bits/stdc++.h>
using namespace std;

int main()
{
    
    

    char mp[5] = {
    
    'S','H','C','D','J'};
    int n;
    scanf("%d",&n);
    int num[54];
    
    for(int i=0;i<54;i++)  //替换顺序
        scanf("%d",&num[i]);

    int pai[54];
    for(int i=0;i<54;i++)  //牌默认顺序
        pai[i]= i+1;
        
    int next[54];
    for (int i =0;i<n;i++)
    {
    
        
        for (int j = 0;j<54;j++)
            next[num[j]-1] = pai[j];
        for (int j = 0;j<54;j++)
            pai[j] = next[j];
    }
    
    for(int i=0;i<54;i++)
    {
    
     
        if(i!=0)
            cout<<" ";
        printf("%c%d",mp[(pai[i]-1)/13], (pai[i]-1)%13+1);
    }
}

Supongo que te gusta

Origin blog.csdn.net/weixin_43999137/article/details/113864938
Recomendado
Clasificación