题目看这里: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 . 代码写得好臃肿...