您的位置:首页 > 其它

USACO 1.1-Friday the Thirteenth

2010-06-13 13:38 459 查看
题目看这里:http://www.nocow.cn/index.php/Translate:USACO/friday

相当简单,一年一年挨个搜索13号是星期几然后inc就可以了。

上代码:

{
ID:asdcyt01
PROB:friday
LANG:PASCAL
}
program friday(input,output);
var
n,i,y,m,d:longint;
a:array[0..6]of longint;
dayue:set of byte;
xiaoyue:set of byte;
begin
dayue:=[1,3,5,7,8,10,12];
xiaoyue:=[4,6,9,11];
assign(input,'friday.in');reset(input);
assign(output,'friday.out');rewrite(output);
readln(n);
fillchar(a,sizeof(a),0);
y:=1900;m:=1;d:=6;
while y<1900+n do
begin
if m in dayue then begin inc(a[d]);d:=(d+31)mod 7;end;
if m in xiaoyue then begin inc(a[d]);d:=(d+30)mod 7;end;
if m=2 then
if (y mod 100<>0)and(y mod 4=0)or(y mod 400=0) then
begin inc(a[d]);d:=(d+29)mod 7;end
else
begin inc(a[d]);d:=(d+28)mod 7;end;
if m=12 then begin inc(y);m:=1;end
else inc(m);
end;
write(a[6],' ');
for i:=0 to 4 do
write(a[i],' ');
writeln(a[5]);
end .


代码写得好臃肿...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: