鱼C论坛

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

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

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

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

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

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


                               
登录/注册后可看大图


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

不许看答案,否则打屁屁





程序分析:
        在4中程序比较傻,居然把每个月都统计出来了,那还要计算机算个屁。。。这次利用Js特有的“短路逻辑”优化下,你只需要知道:一三五七八十腊,三十一天永不 差。四六九冬三十天,平年二月二十 八。       
        特殊情况,闰年且输入月份大于 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 | 显示全部楼层
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.         <title>6</title>
  5.         <meta charset="utf-8">
  6.         <script type="text/javascript">
  7.                 // 这里可以用字符串来代替
  8.                 var yue=new Array(1,3,4,5,6,7,8,9,10,11);
  9.                 var yued=new Array(1,3,5,7,8,10);
  10.                 var yuex=new Array(4,6,9,11);
  11.                 function getday(){
  12.                         var days=document.getElementById("isda").value.split("-");
  13.                         var dayd=new Array();
  14.                         dayd[0]=parseInt(days[0]);
  15.                         dayd[1]=parseInt(days[1]);
  16.                         dayd[2]=parseInt(days[2]);
  17.                         var isp=document.getElementById("isp");
  18.                         var num=0
  19.                         num=jishu(dayd,yue,yued,yuex);
  20.                         if ((dayd[0]%4)==0 && (dayd[0]%100)!=0) {
  21.                                 if (dayd[1]>2) {num=num+1;}}
  22.                         isp.innerHTML="这一天是这一年的第"+num+"天";
  23.                 }

  24.                 function jishu(dayd,yue,yued,yuex){
  25.                                 if (yued.indexOf(dayd[1])>-1 && dayd[1]!=1){
  26.                                         var mond=getindex(yued,dayd[1]);
  27.                                         var monx=getindex(yue,dayd[1]);
  28.                                         var daynum=(monx-mond)*30+mond*31+dayd[2]+28;}
  29.                                 else if (yuex.indexOf(dayd[1])>-1 && dayd[1]!=2){
  30.                                         var mond=getindex(yuex,dayd[1]);
  31.                                         var monx=getindex(yue,dayd[1]);
  32.                                         var daynum=(monx-mond)*31+mond*30+dayd[2]+28;}
  33.                                 else if (dayd[1]==2) {
  34.                                         var daynum=31+dayd[2];}
  35.                                 else if (dayd[1]==1) {
  36.                                         var daynum=dayd[2];}
  37.                                 else{var daynum=334+dayd[2]}       
  38.                                 return daynum;
  39.                 }
  40.                 function getindex(shuz,s){
  41.                         for(var i=0;i<shuz.length;i++){
  42.                                 if(shuz[i]==s){
  43.                                         return i;}}
  44.                 }
  45.         </script>
  46. </head>
  47. <body>
  48.         <input type="text" name="" id="isda"><input type="button" name="" value="计算" onclick="getday()">
  49.         <p id="isp"></p>
  50. </body>
  51. </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的,每次看了答案感觉都可以优化


  1. var HowManyDays1 = function(month,days){
  2.         var days1 = 0;
  3.         for(var i=month;i>1;i--){
  4.                 if(i<=12 && i>=1){
  5.                         days1+=30;
  6.                         if(i%2 != 0){days1+=1}
  7.                         if(i==2){days-=2}
  8.                 }
  9.         }
  10.         var HowManyDay = days1+days;
  11.         console.log(HowManyDay);
  12. }
  13. 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 编辑
  1.         var kaiguan = true;
  2.         var count = 0;
  3.         while (kaiguan) {
  4.             var nianfen = Number(prompt("请输入年份"));
  5.             var yuefen = Number(prompt("请输入月份"));
  6.             if (!yuefen) {
  7.                 alert("请输入数字月份")
  8.             } else {
  9.                 while (kaiguan) {
  10.                     var tianshu = Number(prompt("请输入几号"));
  11.                     if (!tianshu) {
  12.                         alert("请输入数字几号")
  13.                     } else {
  14.                         break;
  15.                     }
  16.                 }
  17.                 break;
  18.             }
  19.         }
  20.         var month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  21.         for (const key in month) {
  22.             // console.log("key" + key);
  23.             if (key == yuefen) {
  24.                 break;
  25.             } else {
  26.                 count = count + month[key];
  27.                 // console.log(month[key]);
  28.             }
  29.         }
  30.         if (yuefen > 2 && (nianfen % 4 == 0 && nianfen % 100 != 0 || nianfen % 400 == 0))
  31.             count++;
  32.         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-4-27 11:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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