zoukankan      html  css  js  c++  java
  • 一个比较有趣的题:推算今天星期几

    题目:有一天你忘记了今天是星期几,你找来了八个人,让他们每人说两句话,第一句是星期几,另一句今天不是星期几,两句中一句真,一句假,可能第一句为真,也可能第二句为真。最后你确定今天是星期几,并输出。(输入描述,8行,每行是星期几的阿拉伯数字。输出描述一个数字,表示星期几)

    输入:[[1,2],[2,6],[3,4],[5,1],[7,7],[1,5],[1,4],[4,2]]

    输出:7

    说实话,第一眼看到这个题就感觉有问题,假如我们极端的思考这个问题,八个都回答[[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]]

    我们如何推算呢?还有3,4,5,6,7排除不了。所以题目还是有一定的问题,但是这里是让我们编写程序,所以要求不要那么严格,主要的就是判断,在推算。

    首先来判断:

    假如一个人的答案[1,2];假如今天为x,根据题目我们可以做出判断:

    如果x == 1返回true;那么x != 2返回false。

    如果x == 1返回false;那么x != 2返回true。

    根据上边判断写出计算机能够运行的语言(这里我使用JS,判断都一样)

    ((x == 1) == true)&&((x != 2) == false)||((x == 1) == false)&&((x != 2) == true)

    简化判断:

    (x == 1)&&(x == 2)||(x != 1)&&(x != 2)

    条件总结出来,现在就是将每一个人的答案进行判断:

    function printDate(arr) {
            //param x ==>假如今天周几,用 x 去推算八个人的答案,num ==>计数器,x满足八个人的答案,则输出x
            var x,num;
            for(x = 1;x < 8;x++){//1 -- 7对每一天进行推算
                num = 0;
                for(var j = 0;j < 8; j++){
                    //对每一天进行判断
                    if(((x == arr[j][0])&&(x == arr[j][1]) || (x != arr[j][0])&&(x != arr[j][1]))){
                        num++;
                        //如果八个人都满足,输出x,并跳出本循环
                        if(num == 8){
                            console.log(x);
                            break;
                        }
                    }
                }
            }
        }
        //八个人的答案组成的数组
        var arr1 = [[1,2],[2,6],[3,4],[5,1],[7,7],[1,5],[1,4],[4,2]];
        var arr2 = [[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]];
        printDate(arr1);//7
        printDate(arr2);//3,4,5,6,7

    从arr2可以看出,该判断对3,4,5,6,7不能再排除。

    其实最主要的就是通过题目,提炼出判断条件。

    其他

    [我的博客,欢迎交流!](http://rattenking.gitee.io/stone/index.html)

    [我的CSDN博客,欢迎交流!](https://blog.csdn.net/m0_38082783)

    [微信小程序专栏](https://blog.csdn.net/column/details/18335.html)

    [前端笔记专栏](https://blog.csdn.net/column/details/18321.html)

    [微信小程序实现部分高德地图功能的DEMO下载](http://download.csdn.net/download/m0_38082783/10244082)

    [微信小程序实现MUI的部分效果的DEMO下载](http://download.csdn.net/download/m0_38082783/10196944)

    [微信小程序实现MUI的GIT项目地址](https://github.com/Rattenking/WXTUI-DEMO)

    [微信小程序实例列表](http://blog.csdn.net/m0_38082783/article/details/78853722)

    [前端笔记列表](http://blog.csdn.net/m0_38082783/article/details/79208205)

    [游戏列表](http://blog.csdn.net/m0_38082783/article/details/79035621)

  • 相关阅读:
    出差归来
    五一假期的开端
    哭。。。五一这就过拉。。。还没什么感觉那。。。呜呜
    爱姬家族新成员。。。
    大道至简读后感
    假期进度报告
    假期报告
    假期进度报告
    假期进度报告
    假期进度报告
  • 原文地址:https://www.cnblogs.com/linewman/p/9918571.html
Copyright © 2011-2022 走看看