Project Euler Problem 19

  • 1900年1月1日は月曜日である。
  • 9月、4月、6月、11月は30日まであり、2月を除く他の月は31日まである。
  • 2月は28日まであるが、うるう年のときは29日である。
  • うるう年は西暦が4で割り切れる年に起こる。しかし、西暦が400で割り切れず100で割り切れる年はうるう年でない。
  • 20世紀(1901年1月1日から2000年12月31日)で月の初めの日曜日の数を数えよ。

    日付・時間関数の扱いという感じの問題ですね.これもそんなに難しくない.

    b1 <- numeric()
    for(i in 1901:2000){
      for(j in 1:12){
        a1 <- paste(j,"/01/",i,sep="")
        b1 <- c(b1,a1)
      }
    }
    b1 <- strptime(b1,"%m/%d/%Y")
    w1 <- weekdays(b1)
    length(w1[w1=="日曜日"])