/** 1 Jan 1900 was a Monday. How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)? */ #include "0.hpp" #define _ori 1901 #define _base 1900 #define _end 2000 #define _moon 1 #define _day 0 //int month[13] = {1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int month[13] = {0, 3, 0, 3, 2, 3, 2, 3, 3, 2, 3, 2, 3}; int year[2] = {1, 2}; string day[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; int leap(int a) { if(a % 100 == 0) { if(a % 400 == 0) return 1; else return 0; } else { if(a % 4 == 0) return 1; else return 0; } } int main() { int count = 0; int sum = 1; int yearsum; for(int i = _ori; i <= _end; i++) { // loop of year sum += year[leap(i - 1)]; yearsum = 0; cout << i << '\t'; //for(int j = 2; j <= _moon; j++) // loop of month //yearsum += month[j - 1]; //if(_moon > 2 && leap(i)) yearsum += month[0]; for(int j = 0; j < 12; j++) { yearsum += month[j]; if(j == 2 && leap(i)) yearsum++; if((sum + yearsum) % 7 == _day) count++; cout << (sum + yearsum) % 7 << " "; } cout << '\t' << count; cout << endl; //for(int k = 0; k < month[_moon]; k++) // loop of date //if((sum + k + yearsum) % 7 == _day) count++; //cout << i << " " << (sum + yearsum) % 7 << endl; } cout << count << endl; return 0; }