CCF真题之节日
201503-3
#include <iostream>
using namespace std;
bool lear(int year) {
if((year%4==0&&year%100!=0)||(year%400==0))
return true; else return false; }
int countDay(int year,int month,int day) {
int i,s,num=0;
int b[12]={31,28,31,30,31,30,31,31,30,31,30,31};//每个月的天数
if(lear(year)) b[1]=29; //若为闰年,则修改第2个月份的天数
//统计1到year-1年之间有多少个闰年
for(i=1;i<year;i++) {
if(lear(i)) num++; }
s=(year-1)*365+num;
//year-1年底距离0年的总天数
for(i=0;i<month-1;i++)
s=s+b[i]; //第year年前month-1个月的天数
s=s+day;//再加上month这个月的天数
return s; }
int main() {
int i,m,n,d,y1,y2,cday,cweek,dd;
//int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};//每个月的天数 cin>>m>>n>>d>>y1>>y2;
for(i=y1;i<=y2;i++) {
//一直90分,原因,数组初始化在for循环外面 ,故若为闰年,a[1]的值会不断增1
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};//每个月的天数
if(lear(i)) a[1]=29;
//i年m月1日距离1850年1月1日多少天
cday=countDay(i,m,1)-countDay(1850,1,1);
cweek=cday%7+2;
// i年m月1日为周几
if(d>=cweek)
dd=1+(d-cweek)+(n-1)*7; //首先计算i年m月的第一个星期几为几号,再计算第几个星期几为几号
else dd=1+(7-cweek)+d+(n-1)*7;
if(dd>a[m-1]) cout<<"none"<<endl;
else {
cout<<i<<"/";
if(m<10) cout<<"0"<<m<<"/";
else cout<<m<<"/";
if(dd<10) cout<<"0"<<dd<<endl;
else cout<<dd<<endl;
}
}
}
CCF真题之节日的更多相关文章
- CCF真题之最优灌溉
201412-4 问题描述 雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖了一口很深的水井,所有的麦田都从这口井来引水灌溉. 为了灌溉,雷雷需要建立一些水渠,以连接水井和麦田,雷雷也可以利 ...
- CCF真题Z型输出
#include<stdio.h> #include<iostream> #include<string.h> #include<algorithm> ...
- CCF真题之命令行选项
201403-3 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项.每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔.这些字符串中的第一个为该命令行工具的名字,由小写字母 ...
- CCF真题之最大矩形
201312-3 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi.这n个矩形构成了一个直方图.例如,下图中六个矩形的高度就分别是3, 1, 6 ...
- CCF真题之字符串匹配
201409-3 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行.你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符:当选项关闭时,表示同一 ...
- CCF真题之网络延时
201503-4 问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机.交换机与电脑之间使用网络连接.交换机按层级设置,编号为1的交换机为根交换机,层级为1.其他的交换机都连接 ...
- CCF真题之Z字形扫描
201412-2 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n×n的矩阵,Z字形扫描的过程如下图所示: 对于下面的4×4的矩阵, 1 5 ...
- CCF真题之门禁系统
201412-1 问题描述 涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况.每位读者有一个编号,每条记录用读者的编号来表示.给出读者的来访记录,请问每一条记录中的读者是第几次出现. 输入 ...
- CCF真题之画图
201409-2 问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色. 下图给出了一个画了两个矩形的 ...
随机推荐
- js中!!的作用
js中!!的作用是: !!一般用来将后面的表达式转换为布尔型的数据(boolean) ===表示类型什么的全部相等(自己写一个if测试一下就好了)!==表示要全部不想等包括类型(一样写一个if)||或 ...
- linux下连接本地的navicate
1.进mysql cd mysql; cd bin; ./mysql -uroot -proot; show databases;#可以没有 #修改权限 1.GRANT ALL PRIVILEGES ...
- UItableView自定义标题(headerView)重用问题
在实现类似QQ列表的功能时,这样自定义了一个标题headerView 在实现类似QQ列表的功能时,这样自定义了一个标题headerView - (UIView *)tableView:(UITable ...
- [LeetCode]题解(python):086 - Partition List
题目来源 https://leetcode.com/problems/partition-list/ Given a linked list and a value x, partition it s ...
- (转载)C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind
http://blog.sina.com.cn/s/blog_61437b3b0102v0bt.html http://blog.csdn.net/chenwk891/article/details/ ...
- XLST
xlst转换 // 读入源请求和mapping配置 StreamSource xmlSource = new StreamSource(new InputStreamReader(new ByteAr ...
- C语言:其他进制数转换为十进制(方法一)
#include<stdio.h> #include<math.h> #include<string.h> //其他任意进制转换为十进制 int main() { ...
- kill 命令详解 系统信号
kill 命令详解 系统信号 参考: 了解Linux的进程与线程 http://www.cnblogs.com/MYSQLZOUQI/p/4234005.html Linux就这个范儿 P532 ...
- 关于C、OC、C++、OC++、Swift的一些常识
关于C.OC.C++.OC++.Swift的一些常识 OC是C语言的一个超集,是一门面向对象的语言,因为苹果的崛起而火,API主要是cocoa(OSX)和cocoatouch(iOS),GCC 和 C ...
- Perl Print Win32 Console Windows 控制台 print Unicode 问题
参考资料: https://stackoverflow.com/questions/15224400/perl-on-windows-problems-with-encoding https://te ...