pat甲级1042
题目要求:打乱扑克牌顺序 解题思路分为两步
1.扑克牌表示
S1, S2, …, S13,
H1, H2, …, H13,
C1, C2, …, C13,
D1, D2, …, D13,
J1, J2
char mp[5]={'S','H','C','D','J'};
i=1.....54;
printf("%c%d ",mp[(end[i]-1)/13],(end[i]-1)%13+1);
2.打乱过程
设置初始数组
for(int i=1;i<=N;i++)
{
start[i]=i;//i为在1到54中的位置
}
设置打乱函数
int shuffle(int start[N+1],int end[N+1])
{
for(int i=1;i<=N;i++)
{
end[next[i]]=start[i];//next数组为输入的打乱顺序
}
return 0;
}
操作k次,用end数组覆盖start数组