鱼C论坛

 找回密码
 立即注册
查看: 3744|回复: 20

[每日一练] 算法6 ◉‿◉ 进阶版-算法4

[复制链接]
发表于 2017-5-10 21:55:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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


                               
登录/注册后可看大图


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

不许看答案,否则打屁屁





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


源代码:
游客,如果您要查看本帖隐藏内容请回复






如果喜欢,请订阅
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-30 03:15:47 | 显示全部楼层
very good
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-3 01:42:27 | 显示全部楼层
瞧瞧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-12 23:28:28 | 显示全部楼层
dd
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-27 00:53:48 | 显示全部楼层
悄悄
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-1 15:52:01 | 显示全部楼层
...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-23 14:08:06 | 显示全部楼层
kankan
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-20 16:00:07 | 显示全部楼层
dd
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-29 11:38:37 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-29 18:39:31 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[0]=parseInt(days[0]);
                        dayd[1]=parseInt(days[1]);
                        dayd[2]=parseInt(days[2]);
                        var isp=document.getElementById("isp");
                        var num=0
                        num=jishu(dayd,yue,yued,yuex);
                        if ((dayd[0]%4)==0 && (dayd[0]%100)!=0) {
                                if (dayd[1]>2) {num=num+1;}}
                        isp.innerHTML="这一天是这一年的第"+num+"天";
                }

                function jishu(dayd,yue,yued,yuex){
                                if (yued.indexOf(dayd[1])>-1 && dayd[1]!=1){
                                        var mond=getindex(yued,dayd[1]);
                                        var monx=getindex(yue,dayd[1]);
                                        var daynum=(monx-mond)*30+mond*31+dayd[2]+28;}
                                else if (yuex.indexOf(dayd[1])>-1 && dayd[1]!=2){
                                        var mond=getindex(yuex,dayd[1]);
                                        var monx=getindex(yue,dayd[1]);
                                        var daynum=(monx-mond)*31+mond*30+dayd[2]+28;}
                                else if (dayd[1]==2) {
                                        var daynum=31+dayd[2];}
                                else if (dayd[1]==1) {
                                        var daynum=dayd[2];}
                                else{var daynum=334+dayd[2]}        
                                return daynum;
                }
                function getindex(shuz,s){
                        for(var i=0;i<shuz.length;i++){
                                if(shuz[i]==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>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-23 15:19:03 | 显示全部楼层
emm
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-8 15:10:17 | 显示全部楼层
emm.....在算法4我感觉写的还行,这章的要求也达到了,看看答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-8 15:34:37 | 显示全部楼层
感觉是故意让我写for的,每次看了答案感觉都可以优化

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);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-22 22:57:39 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-7-18 19:24:03 | 显示全部楼层
11
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        for (const key in month) {
            // console.log("key" + key);
            if (key == yuefen) {
                break;
            } else {
                count = count + month[key];
                // console.log(month[key]);
            }
        }
        if (yuefen > 2 && (nianfen % 4 == 0 && nianfen % 100 != 0 || nianfen % 400 == 0))
            count++;
        alert("第" + nianfen + "年" + "第" + (count + tianshu) + "天");
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-30 17:01:54 | 显示全部楼层
123
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-25 14:08:51 | 显示全部楼层
我都是拿手指头数的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 20:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表