题意 给你洗牌顺序求洗牌后的结果
题目连接点击打开链接
#include <stdio.h>
struct list
{
int num[54];
}order[200];
void solve ( )
{
int n, i, j, card_1[54], card_2[54], m;
scanf ( "%d", &n );
for ( i = 1; i <= n; i++ )
for ( j = 1; j <= 52; j++ )
scanf ( "%d", &order[i].num[j] );
for ( i = 1; i <= 52; i++ )
card_1[i] = i;
for ( i = 0; i < n; i++ )
{
scanf ( "%d", &m );
for ( j = 1; j <= 52; j++ )
card_2[j] = card_1[order[m].num[j]];
for ( j = 1; j <= 52; j++ )
card_1[j] = card_2[j];
}
for ( i = 1; i <= 52; i++ )
{
int flag = card_1[i]% 13, x = card_1[i];
if ( flag == 0 )
printf ( "Ace" );
else
if ( flag == 12 )
printf ( "King" );
else
if ( flag == 11 )
printf ( "Queen" );
else
if ( flag == 10 )
printf ( "Jack" );
else
printf ( "%d", flag + 1 );
if ( x <= 13 )
printf ( " of %s\n", "Clubs" );
else
if ( x <= 26 )
printf ( " of %s\n", "Diamonds" );
else
if ( x <= 39 )
printf ( " of %s\n", "Hearts" );
else
printf ( " of %s\n", "Spades" );
}
}
int main ( )
{
int t;
scanf ( "%d", &t );
while ( t-- )
{
solve ( );
if ( t )
puts ( "" );
}
return 0;
}
本文介绍了一个基于C语言实现的洗牌算法,通过输入特定的洗牌顺序,可以得到一副52张标准扑克牌洗牌后的结果。算法首先读取洗牌次数及每次洗牌的具体顺序,然后模拟洗牌过程,并最终输出每张牌的面值和花色。
1581

被折叠的 条评论
为什么被折叠?



