不二如是 发表于 2017-5-10 21:55:10

算法6 ◉‿◉ 进阶版-算法4

本帖最后由 不二如是 于 2017-5-12 07:26 编辑

http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png

按照提示,完成代码,秀秀你的编程能力!

不许看答案,否则打屁屁



程序分析:
        在4中程序比较傻,居然把每个月都统计出来了,那还要计算机算个屁。。。这次利用Js特有的“短路逻辑”优化下,你只需要知道:一三五七八十腊,三十一天永不 差。四六九冬三十天,平年二月二十 八。       
        特殊情况,闰年且输入月份大于 3 时需考虑多加一天。

源代码:
**** Hidden Message *****



○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛

s694340202 发表于 2017-10-30 03:15:47

very good

夜无眠 发表于 2018-4-3 01:42:27

瞧瞧

totutoo 发表于 2018-4-12 23:28:28

dd

dsa159245 发表于 2018-4-27 00:53:48

悄悄

向一朵朵鲜花 发表于 2018-5-1 15:52:01

...

shishao723 发表于 2018-5-23 14:08:06

kankan

看到美媚流口水 发表于 2018-6-20 16:00:07

dd

1173419450 发表于 2018-6-29 11:38:37

看看

未来已来 发表于 2018-6-29 18:39:31

看看

waitforlove 发表于 2018-9-21 15:37:54

<!DOCTYPE html>
<html>
<head>
        <title>6</title>
        <meta charset="utf-8">
        <script type="text/javascript">
                // 这里可以用字符串来代替
                var yue=new Array(1,3,4,5,6,7,8,9,10,11);
                var yued=new Array(1,3,5,7,8,10);
                var yuex=new Array(4,6,9,11);
                function getday(){
                        var days=document.getElementById("isda").value.split("-");
                        var dayd=new Array();
                        dayd=parseInt(days);
                        dayd=parseInt(days);
                        dayd=parseInt(days);
                        var isp=document.getElementById("isp");
                        var num=0
                        num=jishu(dayd,yue,yued,yuex);
                        if ((dayd%4)==0 && (dayd%100)!=0) {
                                if (dayd>2) {num=num+1;}}
                        isp.innerHTML="这一天是这一年的第"+num+"天";
                }

                function jishu(dayd,yue,yued,yuex){
                                if (yued.indexOf(dayd)>-1 && dayd!=1){
                                        var mond=getindex(yued,dayd);
                                        var monx=getindex(yue,dayd);
                                        var daynum=(monx-mond)*30+mond*31+dayd+28;}
                                else if (yuex.indexOf(dayd)>-1 && dayd!=2){
                                        var mond=getindex(yuex,dayd);
                                        var monx=getindex(yue,dayd);
                                        var daynum=(monx-mond)*31+mond*30+dayd+28;}
                                else if (dayd==2) {
                                        var daynum=31+dayd;}
                                else if (dayd==1) {
                                        var daynum=dayd;}
                                else{var daynum=334+dayd}       
                                return daynum;
                }
                function getindex(shuz,s){
                        for(var i=0;i<shuz.length;i++){
                                if(shuz==s){
                                        return i;}}
                }
        </script>
</head>
<body>
        <input type="text" name="" id="isda"><input type="button" name="" value="计算" onclick="getday()">
        <p id="isp"></p>
</body>
</html>

a211827754 发表于 2018-9-23 15:19:03

emm

凌乱大帅比 发表于 2018-10-8 15:10:17

emm.....在算法4我感觉写的还行,这章的要求也达到了,看看答案

凌乱大帅比 发表于 2018-10-8 15:34:37

感觉是故意让我写for的,每次看了答案感觉都可以优化{:10_301:} {:10_301:}


var HowManyDays1 = function(month,days){
        var days1 = 0;
        for(var i=month;i>1;i--){
                if(i<=12 && i>=1){
                        days1+=30;
                        if(i%2 != 0){days1+=1}
                        if(i==2){days-=2}
                }
        }
        var HowManyDay = days1+days;
        console.log(HowManyDay);
}
HowManyDays1(5,9);

simble 发表于 2018-10-24 11:37:10

没写对


<!DOCTYPE html>
<html>
        <head>
                <meta charset="UTF-8">
                <title>算法6_短路逻辑</title>
        </head>
        <body>
                <script>
                        var year = parseInt(prompt('年'));
                        var month = parseInt(prompt('月'));
                        var day = parseInt(prompt('日'));
                        var allDay=0;
                        if(year%4==0&&year%100!=0){
                        //闰年
                                month--;
                                for(var i=1;i<=month;i++){
                                        if(i=1||3||5||7||8||10||12){
                                                allDay += 31;
                                        }else if(i=4||6||9||11){
                                                allDay += 30;
                                        }else if(i==2){
                                                allDay += 29;
                                        }
                                }
                                allDay += day;
                                document.write(allDay);
                        }else{
                                //非闰年
                                month--;
                                for(var i=1;i<=month;i++){
                                        if(i=1||3||5||7||8||10){
                                                allDay += 31;
                                        }else if(i=4||6||9||11){
                                                allDay += 30;
                                        }else if(i==2){
                                                allDay += 28;
                                        }
                                }
                                allDay += day;
                                document.write(allDay);
                        }
                </script>
        </body>
</html>

白无痕 发表于 2019-4-22 22:57:39

看看

Vage 发表于 2019-7-18 19:24:03

11

掵ф伫錠 发表于 2019-12-10 21:06:39

本帖最后由 掵ф伫錠 于 2019-12-10 21:12 编辑

      var kaiguan = true;
      var count = 0;
      while (kaiguan) {
            var nianfen = Number(prompt("请输入年份"));
            var yuefen = Number(prompt("请输入月份"));
            if (!yuefen) {
                alert("请输入数字月份")
            } else {
                while (kaiguan) {
                  var tianshu = Number(prompt("请输入几号"));
                  if (!tianshu) {
                        alert("请输入数字几号")
                  } else {
                        break;
                  }
                }
                break;
            }
      }
      var month = ;
      for (const key in month) {
            // console.log("key" + key);
            if (key == yuefen) {
                break;
            } else {
                count = count + month;
                // console.log(month);
            }
      }
      if (yuefen > 2 && (nianfen % 4 == 0 && nianfen % 100 != 0 || nianfen % 400 == 0))
            count++;
      alert("第" + nianfen + "年" + "第" + (count + tianshu) + "天");

落寞少年 发表于 2020-10-30 17:01:54

123

TI8的maybe本人 发表于 2022-1-25 14:08:51

我都是拿手指头数的
页: [1] 2
查看完整版本: 算法6 ◉‿◉ 进阶版-算法4