nyoj1038纸牌游戏(模拟题)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=1038

代码如下:

001. #include<cstdio>
002. #include<cstring>
003. #include<algorithm>
004. using namespace std;
005.  
006. struct node
007. {
008. int fh;
009. int rank;
010. char a;       //数字
011. char b;     //符号
012. }N[5][20];
013. bool cmp(node n1,node n2)
014. {
015. if(n1.fh==n2.fh)
016. return n1.rank<n2.rank;
017. return n1.fh<n2.fh;
018. }
019. int main()
020. {
021. char s1[108],s2[58],s3[3];
022. int flag=1;
023. while(scanf("%s",s3)!=EOF)
024. {
025. memset(N,0,sizeof(N));
026. if(flag!=1)
027. printf("\n");
028. scanf("%s%s",s1,s2);
029. strcat(s1,s2);             //连接字符串
030. int len=strlen(s1);
031. int p=0,q=0,sum=0;
032. for(int i=0;i<len;i+=2)    //首先将所有的牌分成4份
033. {
034. if(sum%4==0&&sum!=0)
035. {
036. p=0;
037. q++;
038. }
039. N[p][q].a=s1[i];
040. if(s1[i]>='2'&&s1[i]<='9')
041. N[p][q].rank=s1[i]-'0';
042. else if(s1[i]=='A')
043. N[p][q].rank=14;
044. else if(s1[i]=='T')
045. N[p][q].rank=10;
046. else if(s1[i]=='J')
047. N[p][q].rank=11;
048. else if(s1[i]=='Q')
049. N[p][q].rank=12;
050. else if(s1[i]=='K')
051. N[p][q].rank=13;
052. N[p][q].b=s1[i+1];
053. if(s1[i+1]=='C')
054. N[p][q].fh=1;
055. else if(s1[i+1]=='D')
056. N[p][q].fh=2;
057. else if(s1[i+1]=='S')
058. N[p][q].fh=3;
059. else if(s1[i+1]=='H')
060. N[p][q].fh=4;
061. p++;
062. sum++;
063. }
064. for(int i=0;i<4;i++)
065. sort(N[i],N[i]+13,cmp);
066. if(s3[0]=='E')
067. {
068. printf("East player:\n");     //东
069. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
070. for(int i=0;i<13;i++)
071. printf("|%c %c|",N[0][i].a,N[0][i].a);
072. printf("\n");
073. for(int i=0;i<13;i++)
074. printf("| %c |",N[0][i].b);
075. printf("\n");
076. for(int i=0;i<13;i++)
077. printf("|%c %c|",N[0][i].a,N[0][i].a);
078. printf("\n");
079. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
080. printf("South player:\n");     //南
081. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
082. for(int i=0;i<13;i++)
083. printf("|%c %c|",N[1][i].a,N[1][i].a);
084. printf("\n");
085. for(int i=0;i<13;i++)
086. printf("| %c |",N[1][i].b);
087. printf("\n");
088. for(int i=0;i<13;i++)
089. printf("|%c %c|",N[1][i].a,N[1][i].a);
090. printf("\n");
091. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
092. printf("West player:\n");      //西
093. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
094. for(int i=0;i<13;i++)
095. printf("|%c %c|",N[2][i].a,N[2][i].a);
096. printf("\n");
097. for(int i=0;i<13;i++)
098. printf("| %c |",N[2][i].b);
099. printf("\n");
100. for(int i=0;i<13;i++)
101. printf("|%c %c|",N[2][i].a,N[2][i].a);
102. printf("\n");
103. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
104.  
105. printf("North player:\n");     //北
106. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
107. for(int i=0;i<13;i++)
108. printf("|%c %c|",N[3][i].a,N[3][i].a);
109. printf("\n");
110. for(int i=0;i<13;i++)
111. printf("| %c |",N[3][i].b);
112. printf("\n");
113. for(int i=0;i<13;i++)
114. printf("|%c %c|",N[3][i].a,N[3][i].a);
115. printf("\n");
116. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
117. }
118. if(s3[0]=='S')
119. {
120. printf("East player:\n");     //东
121. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
122. for(int i=0;i<13;i++)
123. printf("|%c %c|",N[3][i].a,N[3][i].a);
124. printf("\n");
125. for(int i=0;i<13;i++)
126. printf("| %c |",N[3][i].b);
127. printf("\n");
128. for(int i=0;i<13;i++)
129. printf("|%c %c|",N[3][i].a,N[3][i].a);
130. printf("\n");
131. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
132.  
133. printf("South player:\n");     //南
134. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
135. for(int i=0;i<13;i++)
136. printf("|%c %c|",N[0][i].a,N[0][i].a);
137. printf("\n");
138. for(int i=0;i<13;i++)
139. printf("| %c |",N[0][i].b);
140. printf("\n");
141. for(int i=0;i<13;i++)
142. printf("|%c %c|",N[0][i].a,N[0][i].a);
143. printf("\n");
144. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
145.  
146. printf("West player:\n");      //西
147. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
148. for(int i=0;i<13;i++)
149. printf("|%c %c|",N[1][i].a,N[1][i].a);
150. printf("\n");
151. for(int i=0;i<13;i++)
152. printf("| %c |",N[1][i].b);
153. printf("\n");
154. for(int i=0;i<13;i++)
155. printf("|%c %c|",N[1][i].a,N[1][i].a);
156. printf("\n");
157. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
158.  
159.  
160. printf("North player:\n");     //北
161. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
162. for(int i=0;i<13;i++)
163. printf("|%c %c|",N[2][i].a,N[2][i].a);
164. printf("\n");
165. for(int i=0;i<13;i++)
166. printf("| %c |",N[2][i].b);
167. printf("\n");
168. for(int i=0;i<13;i++)
169. printf("|%c %c|",N[2][i].a,N[2][i].a);
170. printf("\n");
171. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
172. }
173. if(s3[0]=='W')
174. {
175. printf("East player:\n");     //东
176. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
177. for(int i=0;i<13;i++)
178. printf("|%c %c|",N[2][i].a,N[2][i].a);
179. printf("\n");
180. for(int i=0;i<13;i++)
181. printf("| %c |",N[2][i].b);
182. printf("\n");
183. for(int i=0;i<13;i++)
184. printf("|%c %c|",N[2][i].a,N[2][i].a);
185. printf("\n");
186. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
187.  
188.  
189. printf("South player:\n");     //南
190. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
191. for(int i=0;i<13;i++)
192. printf("|%c %c|",N[3][i].a,N[3][i].a);
193. printf("\n");
194. for(int i=0;i<13;i++)
195. printf("| %c |",N[3][i].b);
196. printf("\n");
197. for(int i=0;i<13;i++)
198. printf("|%c %c|",N[3][i].a,N[3][i].a);
199. printf("\n");
200. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
201.  
202.  
203. printf("West player:\n");      //西
204. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
205. for(int i=0;i<13;i++)
206. printf("|%c %c|",N[0][i].a,N[0][i].a);
207. printf("\n");
208. for(int i=0;i<13;i++)
209. printf("| %c |",N[0][i].b);
210. printf("\n");
211. for(int i=0;i<13;i++)
212. printf("|%c %c|",N[0][i].a,N[0][i].a);
213. printf("\n");
214. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
215.  
216.  
217. printf("North player:\n");     //北
218. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
219. for(int i=0;i<13;i++)
220. printf("|%c %c|",N[1][i].a,N[1][i].a);
221. printf("\n");
222. for(int i=0;i<13;i++)
223. printf("| %c |",N[1][i].b);
224. printf("\n");
225. for(int i=0;i<13;i++)
226. printf("|%c %c|",N[1][i].a,N[1][i].a);
227. printf("\n");
228. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
229. }
230. if(s3[0]=='N')
231. {
232.  
233. printf("East player:\n");     //东
234. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
235. for(int i=0;i<13;i++)
236. printf("|%c %c|",N[1][i].a,N[1][i].a);
237. printf("\n");
238. for(int i=0;i<13;i++)
239. printf("| %c |",N[1][i].b);
240. printf("\n");
241. for(int i=0;i<13;i++)
242. printf("|%c %c|",N[1][i].a,N[1][i].a);
243. printf("\n");
244. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
245.  
246.  
247.  
248. printf("South player:\n");     //南
249. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
250. for(int i=0;i<13;i++)
251. printf("|%c %c|",N[2][i].a,N[2][i].a);
252. printf("\n");
253. for(int i=0;i<13;i++)
254. printf("| %c |",N[2][i].b);
255. printf("\n");
256. for(int i=0;i<13;i++)
257. printf("|%c %c|",N[2][i].a,N[2][i].a);
258. printf("\n");
259. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
260.  
261.  
262.  
263.  
264. printf("West player:\n");      //西
265. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
266. for(int i=0;i<13;i++)
267. printf("|%c %c|",N[3][i].a,N[3][i].a);
268. printf("\n");
269. for(int i=0;i<13;i++)
270. printf("| %c |",N[3][i].b);
271. printf("\n");
272. for(int i=0;i<13;i++)
273. printf("|%c %c|",N[3][i].a,N[3][i].a);
274. printf("\n");
275. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
276.  
277.  
278. printf("North player:\n");     //北
279. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
280. for(int i=0;i<13;i++)
281. printf("|%c %c|",N[0][i].a,N[0][i].a);
282. printf("\n");
283. for(int i=0;i<13;i++)
284. printf("| %c |",N[0][i].b);
285. printf("\n");
286. for(int i=0;i<13;i++)
287. printf("|%c %c|",N[0][i].a,N[0][i].a);
288. printf("\n");
289. printf("+---++---++---++---++---++---++---++---++---++---++---++---++---+\n");
290. }
291. flag++;
292.  
293. }
294. return 0;
295. }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
孪生素数是指两个素数之间的差值为2的素数对。通过筛选法可以找出给定素数范围内的所有孪生素数的组数。 在引用的代码中,使用了递归筛选法来解决孪生素数问题。该程序首先使用循环将素数的倍数标记为非素数,然后再遍历素数数组,找出相邻素数之间差值为2的素数对,并统计总数。 具体实现过程如下: 1. 定义一个数组a[N,用来标记数字是否为素数,其中N为素数范围的上限。 2. 初始化数组a,将0和1标记为非素数。 3. 输入要查询的孪生素数的个数n。 4. 循环n次,每次读入一个要查询的素数范围num。 5. 使用两层循环,外层循环从2遍历到num/2,内层循环从i的平方开始,将素数的倍数标记为非素数。 6. 再次循环遍历素数数组,找出相邻素数之间差值为2的素数对,并统计总数。 7. 输出总数。 至此,我们可以使用这个筛选法的程序来解决孪生素数问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python用递归筛选法求N以内的孪生质数(孪生素数)](https://blog.csdn.net/weixin_39734646/article/details/110990629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [NYOJ-26 孪生素数问题](https://blog.csdn.net/memoryofyck/article/details/52059096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值