黑色星期五
/************************************************************************/ /*题目:有一种计算机病毒叫黑色星期五,如果当天是13号,又恰好是星期五,就会 /* 发作起来毁坏计算机存储系统。试编程找出九十年代中这种病毒可能发作的 /* 日期。 /************************************************************************/ #include <iostream> using namespace std; int main() { int nYear; //input year int nMonth; //input month int nDay; //input day int nWeekDay; //input the day of week cout << "Enter the date of today in the form of: year month day dayofweek : " << endl; cin >> nYear >> nMonth >> nDay >> nWeekDay; ////////////////////////////////////////////////////////////////////////// switch (nWeekDay) //先保证是星期五,相应天数要调整 { case 1: nDay += 4; break; case 2: nDay += 3; break; case 3: nDay += 2; break; case 4: nDay += 1; break; case 6: nDay -= 1; break; case 7: nDay -= 2; break; } ////////////////////////////////////////////////////////////////////////// cout << "The date may be as following: " << endl; while (nYear >= 1990) { while (nDay >= 7) { if (nDay == 13 && nYear >= 1990 && nYear <= 1999) cout << nYear << "年 " << nMonth << "月 " << nDay << "日 " << " 星期五" << endl; nDay -= 7; } switch (--nMonth) //先倒退一个月,以计算前一个月的天数 { case 1: case 3: case 5: case 7: case 8: case 10: case 12: nDay += 31; break; case 4: case 6: case 9: case 11: nDay += 30; break; case 2: if ((nYear % 4 == 0) && (nYear % 100) || (nYear % 400 == 0)) nDay += 29; //闰年2月有29天 else nDay += 28; //平年2月28天 break; case 0: //倒退一年 nYear -= 1; nMonth = 12; break; } } system("pause"); return 0; }
最后更新:2017-04-02 15:15:29