[C/C++] 算法提高 5-3日历
来源:互联网 发布:凤岗数控车床编程培训 编辑:程序博客网 时间:2024/05/17 18:26
问题描述 已知2007年1月1日为星期一。设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印。为完成此函数,设计必要的辅助函数也是必要的。样例输入一个满足题目要求的输入范例。例:2050 3样例输出与上面的样例输入对应的输出。例:
思路:
主要就是找出那个月1号是星期几,就可以输出日历了。
#include <iostream>#include <stdio.h>using namespace std;int isRun (int year){ if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0 )) return 1; else return 0;}int main (){ int iYear; int iMonth; cin >> iYear >> iMonth; int week = 1; int day = 1; int mDay[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; for (int i = 0; i < iYear - 2007; ++i) { if (isRun(2007 + i)) day = day + 366; else day += 365; week = (week + day - 1) % 7; day = 1; } if (!week) week = 7; for (int i = 0; i < iMonth-1; ++i) { day = day + mDay[i]; week = (week + day - 1) % 7; day = 1; } cout << "Calendar " << iYear << " - "; if (iMonth < 10) cout << "0"; cout << iMonth << endl; cout << "---------------------" << endl; cout << "Su Mo Tu We Th Fr Sa" << endl; cout << "---------------------" << endl; for (int i = 0; i < week; ++i) cout << " "; for (int i = 1; i <= mDay[iMonth-1]; ++i) { printf("%2d ", i); week++; if (week == 7) { cout << endl; week = 0; } } cout << endl; cout << "---------------------" << endl; return 0;}
阅读全文
0 0
- [C/C++] 算法提高 5-3日历
- 算法提高 日期计算&算法提高 5-3日历
- 蓝桥杯 算法提高 5-3日历
- C++:输出日历的算法
- [C/C++] 算法提高 质因数
- 算法提高 c++_ch02_02
- 算法提高 c++_ch03_02
- 算法提高 c++_ch02_03
- 算法提高 c++_ch02_01
- 算法提高 c++_ch02_01
- 算法提高 c++_ch02_04
- C 日历
- 蓝桥杯 算法提高 c++_ch06_02
- 蓝桥杯 算法提高 c++_ch02_01
- C提高(3)/字符串
- 1501171314-蓝桥杯-算法提高 c++_ch02_01
- 蓝桥杯 ADV-112 算法提高 c++_ch02_01
- 蓝桥杯 ADV-209 算法提高 c++_ch02_04
- 大空头作者:美国联邦政府混乱情形和比特币之间肯定有联系
- 欧洲主要监管机构称ICO可能属于衍生品交易项目
- loading加载和layer.js
- 广播接收者
- 数据库与JavaBean字段名不一致处理
- [C/C++] 算法提高 5-3日历
- 多线程中的线程间通信及等待/通知机制的两种实现方式
- Oracle起步---创建临时表空间/表空间/创建用户/授权
- Angular 中修改bootstrap的模态框(modal)大小
- 新加坡央行公布“Project Ubin”第二阶段工作细节
- C# 内部类
- PAT乙级1060 爱丁顿数
- 巴西央行加速进行区块链研发
- 工作中常用的几个git命令