博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Section 1.1 Friday the Thirteenth
阅读量:5842 次
发布时间:2019-06-18

本文共 1414 字,大约阅读时间需要 4 分钟。

题设有两个要求:

Do not use any built-in date functions in your computer language.

Don't just precompute the answers, either, please. 

没理解,不管怎么样算是练基本功吧打了好长个程序。

procedure leapyear用于计算当前年是闰年。

procedure unleapyear用于计算当前年非闰年。

start表示当前年Jan. 1st是星期几。

注意一个小细节就是输出顺序:Saturday, Sunday, Monday, Tuesday, ..., Friday.

Friday
const day1:array[1..12] of integer=(31,29,31,30,31,30,31,31,30,31,30,31);      day2:array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31);var a:array[1..7] of longint;    n,k,start,i:integer;procedure leapyear(s:integer);var i:integer;begin  s:=(s+12-1) mod 7+1;  inc(a[s]);  for i:=1 to 11 do    begin      s:=(s+day1[i]-1) mod 7+1;      inc(a[s]);    end;end;procedure unleapyear(s:integer);var i:integer;begin  s:=(s+12-1) mod 7+1;  inc(a[s]);  for i:=1 to 11 do    begin      s:=(s+day2[i]-1) mod 7+1;      inc(a[s]);    end;end;begin  assign(input,'friday.in');reset(input);  assign(output,'friday.out');rewrite(output);  readln(n);  k:=0;  start:=1;  while k
0)) or ((k+1900) mod 400=0) then begin leapyear(start); start:=(start+366-1) mod 7+1; end else begin unleapyear(start); start:=(start+365-1) mod 7+1; end; inc(k); end; writeln(a[6],' ',a[7],' ',a[1],' ',a[2],' ',a[3],' ',a[4],' ',a[5]); close(input);close(output);end.

 

转载于:https://www.cnblogs.com/Sky-Grey/archive/2012/12/14/2818829.html

你可能感兴趣的文章
[转]ORACLE 异常错误处理
查看>>
c/c++处理参数
查看>>
Object.observe将不加入到ES7
查看>>
Android类参考---Fragment(一)
查看>>
Windows WMIC命令使用详解(附实例)
查看>>
CMake 构建项目Android NDK项目基础知识
查看>>
请求与响应
查看>>
sql server(常用)
查看>>
算法 - 最好、最坏、平均复杂度
查看>>
MySQL 不落地迁移、导入 PostgreSQL - 推荐 rds_dbsync
查看>>
二叉树的蛇形遍历 leetcode 103
查看>>
Linux设备驱动之IIO子系统——IIO框架及IIO数据结构
查看>>
【Util】 时间天数增加,时间比较。
查看>>
[Erlang 0004] Centos 源代码编译 安装 Erlang
查看>>
51 Nod 1027 大数乘法【Java大数乱搞】
查看>>
20.4. myisamchk — MyISAM Table-Maintenance Utility
查看>>
三维重建技术概述
查看>>
Go语言与数据库开发:01-09
查看>>
Python连续攀升,其他的脚本语言去哪了?
查看>>
socket跟TCP/IP 的关系,单台服务器上的并发TCP连接数可以有多少
查看>>