首页 > 代码库 > uva-340
uva-340
题意:实现一个经典“猜数字”游戏。给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列中都出现过但是位置不对(B)。
输入包含多组,每组输入第一行为序列长度n,第二行是答案序列,接下来是有若干组猜测序列。猜测序列全为0时该组数据结束,n=0时输入结束。
代码如下:
#include<cstdio> #include<iostream> #include<cstring> using namespace std; int ans[1011],n,que[1011],ans_a,ans_b; int main() { int count=1; while(cin>>n) { for(int i=0; i<n; i++) cin>>ans[i]; printf("Game %d:\n",count++); while(1) { int sum=0; ans_a=ans_b=0; for(int i=0; i<n; i++) { cin>>que[i]; sum+=que[i]; } if(!sum)break; for(int i=0; i<n; i++) if(ans[i]==que[i]) ans_a++; for(int i=1; i<=9; i++) { int sum_ans=0,sum_que=0; for(int j=0; j<n; j++) { if(i==ans[j])sum_ans++; if(i==que[j])sum_que++; } if(sum_ans>sum_que)ans_b+=sum_que; else ans_b+=sum_ans; } printf(" (%d,%d)\n",ans_a,ans_b-ans_a); } } return 0; } /* input 4 1 3 5 5 1 1 2 3 4 3 3 5 6 5 5 1 6 1 3 5 1 3 5 5 0 0 0 0 output 1 1 2 0 1 2 1 2 4 0 */
uva-340
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。