begin
m:=1; y:=y+1; end; end; exit; end;
if (y mod 4=0)and(m=2) then begin
flag:=29; en d
else begin
case m of
1,3,5,7,8,10,12:flag:=31; 4,6,9,11:flag:=30; 2:flag:=28; end; end;
if d>flag then begin
d:=1; m:=m+1;
if m=13 then begin
m:=1; y:=y+1; end; end; end;
begin
assign(input,'BIRTHDAY.DAT'); assign
(output,'BIRTHDAY.OUT'); reset(input); rewrite(output); read(y); read(m); read(d);
for i:=1 to 10000 do begin
incdate(); end;
write(y,'-',m,'-',d); close(input); close(output); end.
265¡¢ ·Ö½âÒòʽ ( Factor ) ÎÊÌâÃèÊö£º
Ò»¸ö×ÔÈ»ÊýNµÄÕýÒò×Ó¸öÊý¼ÇΪF(N)£¬ÀýÈç18µÄËùÓÐÕýÒò×ÓΪ1¡¢2¡¢3¡¢6¡¢9¡¢18£¬ËùÒÔF(18)=6¡£ÏÖÔÚ¸ø³öK£¬ÇóËùÓÐÂú×ãF(N)=KµÄNÖÐ×îСµÄÊý¡£
ÊäÈë¸ñʽ£º
´ÓÎļþ¶ÁÈëÊý¾Ý£¬µÚÒ»ÐÐΪK£¬ÆäÖÐ0 Êä³ö¸ñʽ£º Êä³öµ½ÎļþµÚÒ»ÐУ¬Èç¹û´æÔÚ²»´óÓÚ20000µÄ½â£¬ÔòÊä³öÕâ¸öN£¬·ñÔòÊä³ö¡°NO SOLUTION¡±¡£ ÑùÀý1£º FACTOR.DAT FACTOR.OUT 9ÑùÀý2£º FACTOR.DAT FACTOR. var i:longint; n:integer; function getfactor(x:longint):integer; var m:longint; r:integer; begin r:=0; for m:=1 to x do begin if x mod m=0 then r:=r+1; end; getfactor:=r; end; begin assign(input,'FACTOR.DAT'); assign(output,'FACTOR.OUT'); reset(input); rewrite(output); read(n); for i:=1 to 20000 do begin {writeln(i);} if getfactor(i)=n then begin write(i); close(input); close(output); halt; end; end; write('NO SOLUTION'); close(input); close(output); end. 266 ¡¢ KºÃÊý£¨K-Good Number£© ÎÊÌâÃèÊö£º Èç¹ûÒ»¸ö×ÔÈ»ÊýNµÄK½øÖƱíʾÖÐÈÎÒâµÄÏàÁÚµÄÁ½Î»¶¼²»ÊÇÏàÁÚµÄÊý×Ö£¬ÄÇôÎÒÃǾÍ˵Õâ¸öÊýÊÇKºÃÊý¡£ÇóLλK½øÖÆÊýÖÐKºÃÊýµÄÊýÄ¿¡£ÀýÈçK = 4£¬L = 2µÄʱºò£¬ËùÓÐKºÃÊýΪ11¡¢13¡¢20¡¢22¡¢30¡¢31¡¢33 ¹²7¸ö¡£¸ø¶¨K¡¢L£¬ÇóLλKºÃÊýµÄÊýÄ¿¡£ ÊäÈë¸ñʽ£º ´ÓÎļþ¶ÁÈëÊý¾Ý£¬µÚÒ»ÐÐΪK¡¢£Ì£¬ÆäÖÐK<=16£¬L<=10¡£ Êä³ö¸ñʽ£º ½«½á¹ûÊä³öµ½ KGOOD.OUT ÑùÀý KGOOD.DAT KGOOD.OUT 4 2 7 var k,l,n:integer; a:array [1..16] of integer; test:boolean; procedure getnum(i:integer); var m,j,s:integer; begin if i=1 then s:=1 else s:=0; for m:=s to k-1 do begin a[i]:=m; if i=l then begin test:=true; for j:=1 to l-1 do begin if (a[j]-a[j+1])*(a[j]-a[j+1])=1 then begin test:=false; end; end; if test then begin n:=n+1; end; end else begin getnum(i+1); end; end; end; begin assign(input,'KGOOD.DAT'); assign(output,'KGOOD.OUT'); reset(input); rewrite(output); read(k); read(l); for n:=1 to l do begin a[n]:=0; end; n:=0; getnum(1); write(n); close(input); close(output); end. 267¡¢SramocÎÊÌâ ( Sramoc Problem ) ÎÊÌâÃèÊö£º Sramoc ( K , M ) ±íʾÓÃÊý×Ö0¡¢1¡¢£²?¡¢K-1×é³ÉµÄ×ÔÈ»ÊýÖÐÄܱ»MÕû³ýµÄ×îСÊý¡£¸ø¶¨ K¡¢M£¬ÇóSramoc ( K,M )¡£ÀýÈç K=2£¬M=7µÄʱºò£¬Sramoc( 2 , 7 ) = 1001¡£ ÊäÈë¸ñʽ£º ´ÓÎļþSRAMOC.DAT¶ÁÈëÊý¾Ý¡£µÚÒ»ÐÐΪÁ½¸öÕûÊýK¡¢MÂú×ã2<=K<=10¡¢1<=M<=1000¡£ Êä³ö¸ñʽ£º Êä³öSramoc(K,M) µ½ SRAMOC.OUT¡£ ÑùÀý SRAMOC.DA T SRAMOC.OUT 2 7 1001 var k,m,n,l:integer; a1,a2:longint; a:array [1..100] of integer; test:boolean; procedure getnum(i:integer); var j,x:integer; s:longint; begin if test then exit; for x:=0 to k-1 do begin a[i]:=x; if i=l then begin s:=0; for j:=1 to l do s:=s*10+a[j]; if s=0 then continue; if s mod m=0 then begin test:=true; n:=s; break; end; end else begin