龙蛇演义吧 关注:23,220贴子:1,199,892

回复:无聊出一道题(数学)

只看楼主收藏回复

万年历搞定


删除|16楼2009-04-21 22:32
回复
    • 116.24.52.*
    数年历要数999年,,,这不是好方法
    算法应该可以心算,,并默念出,,1909年到2009年的所有年份(符合4月21星期二的)


    17楼2009-04-21 23:33
    回复
      2026-08-21 18:07:34
      广告
      不感兴趣
      开通SVIP免广告
      • 116.24.52.*
      顶完睡觉


      18楼2009-04-22 00:13
      回复
        公元元年到公元999年,,,有多少年,,是符合。。4月21,星期二这两个条件
        =============================================================================
        144
        历史上历法是变化的,就按现在的标准算,是144年


        删除|19楼2009-04-22 00:44
        回复
          涂鸦,勿揪
          create table count(time smalldatetime, week int)
          declare @time smalldatetime,@i int
          select @time=00000101 , @i=1
          while @time<=09990430
          begin
          insert into count(time,week) values (@time,@i)
          select @time = dateadd(dd,1,@time)
          select @i = @i+1
          if @i = 8
          select @i=1
          end
          select * from count where right(convert(char(8),time,112),4)='0421' and @i=2


          20楼2009-04-22 01:32
          回复

            144
            历史上历法是变化的,就按现在的标准算,是144年
            作者:zxz026 2009-4-22 00:44   回复此发言
            ------------------------------------------------------
            还是先给出算法看看吧,,,,,144是个非常接近的答案,,,
            具体是多少我没算过
            这题据说是有三个以上的好算法..........
            我想破头只想到一种,,,很想看看其他的算法
            


            21楼2009-04-22 09:09
            回复
              20楼的是啥语言阿?米看懂


              22楼2009-04-22 09:30
              回复
                20楼的程序有问题
                1 没考虑闰年,闰年特殊,应该是i=i+2
                2 如果按照2009年的4月21是星期二,那么公元元年1月1日不是星期一,我记得星期六(昨晚计算的资料不在手边,我记得是)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


                删除|23楼2009-04-22 10:10
                回复
                  2026-08-21 18:01:34
                  广告
                  不感兴趣
                  开通SVIP免广告
                  20楼的程序有问题
                  1 没考虑闰年,闰年特殊,应该是i=i+2
                  2 如果按照2009年的4月21是星期二,那么公元元年1月1日不是星期一,我记得星期六(昨晚计算的资料不在手边,我记得是)


                  删除|24楼2009-04-22 10:11
                  回复
                    公元元年4月21日的星期几计算
                    最少每一年后退一日:2009-0001=2008
                    闰年:2009/4-2009/100+2009/400=2495("/"整除)
                    2495%7=3(“%”整除后取余数)
                    于是,公元元年4月21日为星期二前三天,于是这天为星期日


                    25楼2009-04-22 10:30
                    回复
                      闰年:2009/4-2009/100+2009/400=2495("/"整除)不是这个答案,是2495-2008=487


                      26楼2009-04-22 10:32
                      回复
                        由此可以推算出0003年4月21日是第一个符合条件的星期二


                        27楼2009-04-22 10:40
                        回复
                          • 219.134.131.*
                          闰年:2009/4-2009/100+2009/400=2495("/"整除)不是这个答案,是2495-2008=487
                          作者:绝色风牛 2009-4-22 10:32   回复此发言
                          ----------------------------------------------
                          也许我的题目没有说清楚,,我算的是公历
                          我算出的公元元年4月21不是星期日
                          关于你的算法2009/100,,,2009/400,,我不明白为什么要这样除
                          


                          28楼2009-04-22 10:52
                          回复
                            • 219.134.131.*
                            闰年:2009/4-2009/100+2009/400=2495("/"整除)不是这个答案,是2495-2008=487
                            作者:绝色风牛 2009-4-22 10:32   回复此发言
                            --------------------------------------------
                            487这个数,,,我不知道你是对应的那个答案,,,
                            如果是01年到999年的符合条件年数的话,,,487这个数有误


                            29楼2009-04-22 10:56
                            回复
                              2026-08-21 17:55:34
                              广告
                              不感兴趣
                              开通SVIP免广告
                              晕,487明显算的是闰年的年数,也就是从星期二倒退2008天之后还要再多倒退的数量
                              不过结果不对,我又算了一下,公元元年4月21是星期6
                              大家用电脑上的万年历看一下2001年就知道了
                              PS:
                              现代历法规则4年一闰,百年不闰,400年又闰,所以每400年有97个闰年,设定每400年一个周期1-400 401-800 801-1200,每个周期内有365*400+97=146097天,是7的倍数,只须讨论一个周期内的情况即可。2001年与公元元年完全一致<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


                              删除|30楼2009-04-22 11:03
                              回复