24小时热门版块排行榜    

查看: 1356  |  回复: 4
本帖产生 4 个 程序强帖 ,点击这里进行查看

holmescn

金虫 (正式写手)

[交流] Euler 工程 第十九题:每月第一天是周日的天数 已有3人参与

首先我们已经知:

  • 1900-1-1 是周一
  • 4、6、9、11月有30天,1、3、5、7、8、10、12有31天
  • 2月在闰年29天,非闰年28天
  • 能被400或4整除的年份是闰年


那么整个20世纪有多少个月的第一天是周日呢?(从1901-1-1到2000-12-31)
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
xzhdty(金币+1): 谢谢 2011-06-02 22:57:30
余泽成(程序强帖+1): 鼓励交流! 2011-06-04 19:22:47
依照惯例,来个C++版本:
CODE:
#include

bool isLeapYear(int year){
        return ((year%4 == 0)&&(year%100 != 0))||(year%400 == 0);
}

size_t daysOfMouth(int year, int mouth){
        switch(mouth){
        case 4:case 6:case 9:case 11:
                return 30;
        case 1:case 3:case 5:case 7:case 8:case 10:case 12:
                return 31;
        case 2:
                return isLeapYear(year)?29:28;
        default:
                return 0;
        }
}

size_t eular19(size_t y1 = 1901, size_t y2 = 2001){
        size_t year = 1900;
        size_t day = 1;
        do{
                day += isLeapYear(year)?366:365;
                day %= 7;
                ++year;
        }while(year < y1);
        size_t sdays = 0;
        do{
                for(int i = 1; i <= 12; ++i){
                        day += daysOfMouth(year, i);
                        day %= 7;
                        if(day == 0)
                                ++sdays;
                }
                ++year;
        }while(year < y2);
        return sdays;
}

int main(){
        std::cout< }

漩涡的中心有一块空地,空空的。
2楼2011-06-02 17:22:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)


dubo(金币+1): 谢谢交流 2011-06-04 17:19:05
余泽成(程序强帖+1): 鼓励交流! 2011-06-04 19:22:58
huycwork好快啊,我的python版刚写出来
CODE:
# -*- coding: utf-8 -*-

days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

date = [1900, 1, 1]

cntSundays = 0

while date[0] < 2001:
    date[2] += 7
    if date[0] % 400 == 0 or date[0] % 4 == 0:
        days[2] = 29
    else:
        days[2] = 28

    if date[2] > days[date[1]]:
        date[2] -= days[date[1]]
        date[1] += 1

    if date[1] > 12:
        date[0] += 1
        date[1] = 1

    if 1901 <= date[0] <= 2000 and date[2] == 2:
        cntSundays += 1

print cntSundays

3楼2011-06-02 17:37:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangww2011

木虫 (著名写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
dubo(金币+1): 谢谢交流 2011-06-04 17:19:13
余泽成(程序强帖+1): 鼓励交流! 2011-06-04 19:23:09
c语言版本
CODE:
#include

static int month[2][12]=
       {{31,28,31,30,31,30,31,31,30,31,30,31},
        {31,29,31,30,31,30,31,31,30,31,30,31}};

int isleap(int n){
  if((n%400==0)||(n%4==0&&n%100!=0))return 1;
  else return 0;
}

int euler19(){
  int year,leap_year,m;
  int result=0;
  long days=0;
  
  for(year=1900;year<2001;year++){
    leap_year=isleap(year);
    for(m=0;m<12;m++){
      if(year>1900&&days%7==1)result++;
      days+=month[leap_year][m];
    }
  }
  
  return result;
}


int main(void){

printf("%d\n",euler19());

return 0;
}

4楼2011-06-03 13:36:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
dubo(金币+1): 谢谢交流 2011-06-04 17:19:21
dubo(金币+3): MALAB 还有 datenum 啊?呵呵真好 2011-06-04 17:22:08
余泽成(程序强帖+1): 鼓励交流! 2011-06-04 19:23:28
matlab
CODE:
function result = euler19()
tic;
result = 0;
dateStart = datenum(1901,1,1);
dateEnd = datenum(2000,12,31);
for i=dateStart:dateEnd
   if strcmpi(datestr(i,'dd'),'01') && strcmpi(datestr(i,'ddd'),'sun')
       result = result+1;
   end
end
toc;
end

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
5楼2011-06-03 16:20:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 holmescn 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:27 by 9i7PCSZyMzot
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:15 by 9i7PCSZyMzot
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:15 by 9i7PCSZyMzot
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 01:03 by 9i7PCSZyMzot
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 E4V9bALS54sj 2026-09-19 3/150 2026-09-20 00:51 by 9i7PCSZyMzot
[考研] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 4pRyVGCVerAA 2026-09-19 3/150 2026-09-20 00:15 by 9i7PCSZyMzot
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 4pRyVGCVerAA 2026-09-19 3/150 2026-09-20 00:03 by 9i7PCSZyMzot
[找工作] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 4pRyVGCVerAA 2026-09-19 4/200 2026-09-20 00:03 by 9i7PCSZyMzot
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:51 by 9i7PCSZyMzot
[基金申请] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:39 by 9i7PCSZyMzot
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:27 by 9i7PCSZyMzot
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:27 by 9i7PCSZyMzot
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:03 by 9i7PCSZyMzot
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 4pRyVGCVerAA 2026-09-19 4/200 2026-09-19 23:03 by 9i7PCSZyMzot
[教师之家] 现代”学阀”该如何界定 +3 iaeyuan 2026-09-19 3/150 2026-09-19 20:52 by 没昵称呀
[基金申请] 国社科系统bug了,是不是要放榜了? +7 kynobel 2026-09-16 9/450 2026-09-19 14:52 by 接好运婷
[考博] 申博发邮件 +8 Lmengk 2026-09-15 9/450 2026-09-19 09:27 by 中间体超市
[有机交流] 各位大神,目前国内有哪些比较好用的逆合成软件? 20+3 zapen 2026-09-15 9/450 2026-09-18 18:17 by zapen
[考博] 上海工程技术大学激光智能制造课题组|2027级博士研究生招生公告 +7 水士口 2026-09-16 8/400 2026-09-16 13:47 by kkklens
[考博] 上海工程技术大学激光智能制造课题组招收博士研究生 +8 两三岁ss 2026-09-14 8/400 2026-09-16 09:46 by 水士口
信息提示
请填处理意见