pat 1042 Shuffling Machine

30 篇文章 0 订阅

洗牌机,每次将牌洗到新的位置,输出洗K次后牌的顺序。简单,水题。在纸上写一下就清楚了,只是输出时要注意,S13,J1等。

AC代码:

//1042 22:18
#include<stdio.h>
int a[60];
int b[60];
char c[5]="SHCD";
int trans[60];

int main()
{
	int k,i,j,num;
	//freopen("C:\\Documents and Settings\\Administrator\\桌面\\input.txt","r",stdin);

	for(i=0;i<=54;i++){
		a[i]=i;

	}
	scanf("%d",&k);
	for(j=1;j<=54;j++){
		scanf("%d",&num);
		trans[j]=num;
	}

	for(i=0;i<k;i++){
		for(j=1;j<=54;j++){
			b[trans[j]]=a[j];
		}
		for(j=1;j<=54;j++)
			a[j]=b[j];
		
	}
	

	if(a[1]>=53&&a[1]<=54)
		printf("J%d",a[1]-52);
	if(a[1]>=1&&a[1]<=52){
		if(a[1]%13==0)
			printf("%c13",c[a[1]/13-1]);
		else 
			printf("%c%d",c[a[1]/13],a[1]%13);
		}
	for(i=2;i<=54;i++){
		if(a[i]>=53&&a[i]<=54)
			printf(" J%d",a[i]-52);
		if(a[i]>=1&&a[i]<=52){
			if(a[i]%13==0)
				printf(" %c13",c[a[i]/13-1]);
			else 
				printf(" %c%d",c[a[i]/13],a[i]%13);
		}
	}
	return 0;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A shuffling machine in C++ can be implemented using an array to represent the deck of cards and using the random number generator to shuffle the cards. Here is a sample code for a shuffling machine: ``` #include <iostream> #include <cstdlib> #include <ctime> using namespace std; const int NUM_CARDS = 52; class ShufflingMachine { private: int deck[NUM_CARDS]; int position; public: ShufflingMachine() { for (int i = 0; i < NUM_CARDS; i++) { deck[i] = i; } position = 0; } void shuffle() { srand(time(NULL)); for (int i = 0; i < NUM_CARDS; i++) { int j = rand() % NUM_CARDS; swap(deck[i], deck[j]); } position = 0; } int dealCard() { if (position >= NUM_CARDS) { shuffle(); } return deck[position++]; } }; int main() { ShufflingMachine shuffler; shuffler.shuffle(); for (int i = 0; i < NUM_CARDS; i++) { cout << shuffler.dealCard() << " "; } cout << endl; return 0; } ``` In this code, the `ShufflingMachine` class represents the shuffling machine. The `deck` array stores the deck of cards, and the `position` variable keeps track of the current position in the deck. The `shuffle` method shuffles the deck by randomly swapping cards. It uses the `srand` function to seed the random number generator with the current time, and the `rand` function to generate random indices for swapping cards. The `dealCard` method deals the next card from the deck. If the deck has been exhausted, it calls the `shuffle` method to shuffle the cards again. In the `main` function, we create a `ShufflingMachine` object and shuffle the cards. Then we deal all the cards and print them out.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值