• 漏批了一张试卷,穷举


    学校进行了一次英语考试,共有10道是非题,每题为10分,解答用1表示"是",用0表示"非"的方式。但老师批完卷后,发现漏批了一张试卷,而且标准答案也丢失了,手头只剩下了3张标有分数的试卷。

    试卷一:
    ①   ②   ③   ④   ⑤   ⑥   ⑦   ⑧   ⑨   ⑩
    0    0    1    0    1    0    0    1    0    0      得分:70
    试卷二:
    ①   ②   ③   ④   ⑤   ⑥   ⑦   ⑧   ⑨   ⑩
    0    1    1    1    0    1    0    1    1    1      得分:50
    试卷三:
    ①   ②   ③   ④   ⑤   ⑥   ⑦   ⑧   ⑨   ⑩
    0    1    1    1    0    0    0    1    0    1      得分:30

    待批试卷:
    ①   ②   ③   ④   ⑤   ⑥   ⑦   ⑧   ⑨   ⑩
    0    0    1    1    1    0    0    1    1    1      得分:?
    请编一程序依据这三张试卷,算出漏批的那张试卷的分数。
     
    用穷举吧,反正才10个题...

    #include <cstdio> 

    int bits(int a) // 计算a中有多少个位是1
    {
        
    int c = 0;
        
    for(c = 0; a; c++)
        
    {
            a 
    = a & (a-1);
        }

        
    return c;
    }


    int main()
    {
        
    int i;
        
    int a[4= {0x0a40x1d70x1c50x0e7,};
        
    int s[4= {7530};
        
        
    for(i = 0; i < 1024; i++// 尝试各种答案
        {
            
    if (10 - bits(a[0^ i) == s[0&& // a[0] ^ i 表示按照答案i对a[0]批改,得到1的位为不同的(也就是答错的)题
                10 - bits(a[1^ i) == s[1&&
                
    10 - bits(a[2^ i) == s[2]) // 得分都满足的答案可能是正确答案
            {
                s[
    3= 10 - bits(a[3^ i); // 计算漏批卷子的分数
                printf("%d\n", s[3]);
            }

        }
     
        
    return 0;
    }


    结果很巧,虽然有多种可能的正确答案,但这张卷子都是60分- -
  • 相关阅读:
    笔记:Struts2 的 JSON 插件
    笔记:Struts2 拦截器
    笔记:Struts2 文件上传和下载
    笔记:Struts2 文件上传和下载
    【学习总结】推荐系统-协同过滤原理
    【刷题】牛客网看到的鹅厂ML面筋-部分问题RecSys相关
    【刷题】【LeetCode】000-十大经典排序算法
    【刷题】【LeetCode】总
    【问题解决方案】pygame生成的窗口点右上角关闭按钮未响应问题的解决
    【刷题】若串 =’software’ ,其子串数目为:37
  • 原文地址:https://www.cnblogs.com/kaikai/p/229296.html
Copyright © 2020-2023  润新知