zoukankan      html  css  js  c++  java
  • 猜数字游戏的提示

    题目

    实现一个经典“猜数字”游戏。给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B)。

    输入包含多组数据。每组输入第一行为序号长度为n,第二行是答案序列,

    接下来是若干猜测序列。猜测序列全0时该数组结束。n=0时输入结束。

    样例输入:

    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

    10

    1 2 2 2 4 5 6 6 6 9

    1 2 3 4 5 6 7 8 9 1

    1 1 2 2 3 3 4 4 5 5

    0 0 0 0 0 0 0 0 0 0

    0

    样例输出:

    Game 1:

    (1,1)

    (2,0)

    (1,2)

    (1,2)

    (4,0)

    Game 2:

    (2,4)

    (3,2)

    分析

    直接统计可得A,为了求B,对于每个数字(1~9),统计二者出现的次数 c1和c2,

    则min(c1,c2)就是该数字对B的贡献。最后要减去A的部分。

    c实现代码如下:

    #include<stdio.h> 
    #define maxn 1010
    
    int main()
    {
        int n,a[maxn],b[maxn];
        int kase=0;
        while(scanf("%d",&n)==1&&n)
        {
            printf("Game %d:
    ",++kase);
            //给出答案序列 
            for(int i=0;i<n;i++)
            {
                scanf("%d",&a[i]);
            }
            
            //猜测序列 
            for(;;)
            {
                int A=0,B=0;
                //输入猜测序列,并判断位置正确 的数字个数 
                for(int i=0;i<n;i++)
                {
                    scanf("%d",&b[i]);
                    if(a[i]==b[i])
                        A++;
                }
                //正常的猜测序列不会有0,所以只判断第一个数是否为0即可 
                if(b[0]==0) break;
                for(int d=1;d<=9;d++)
                {
                    int c1=0,c2=0; //统计数字d在答案序列和猜测系列中各出现多少次
                    for(int i=0;i<n;i++)
                    {
                        if(a[i]==d) c1++;
                        if(b[i]==d) c2++;
                    } 
                    if(c1<c2) B+=c1;else B+=c2;   
                }
                printf(" (%d,%d)
    ",A,B-A);
            }
        }
        return 0;
    }
    
    //直接统计可得A,为了求B,对于每个数字(1-9),统计二者出现的次数c1和c2,
    //则min(c1,c2)就是该数字对B的贡献。最后要减去A的部分。 
  • 相关阅读:
    ios启动画面
    不让精灵移除屏幕外 重写setPosition方法
    post和get请求方式的区别
    IOS开发之手势——UIGestureRecognizer 共存
    Xcode 中的GDB的命令
    [UIView beginAnimations:context:]与[UIView animateWithDuration:animations:]值得注意的一个区别
    应用图标 ICON
    cocos2d 1.01不能运行以前版本工程的问题
    SQL 中数据类型的转换 转
    SQL Server中sql语句执行时间
  • 原文地址:https://www.cnblogs.com/Vincent-yuan/p/12920182.html
Copyright © 2011-2022 走看看