·¢²¼Ê±¼ä : ÐÇÆÚÁù ÎÄÕÂË㷨ϰÌâ¼°½â´ð¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ516531c16137ee06eff91874
Ò»¸ö×ÔÈ»Êý¿ÉÒÔд³ÉÈô¸É¸öСÓÚµÈÓÚ×Ô¼ºµÄ×ÔȻ֮ºÍ£¬Õâ½Ð¸Ã×ÔÈ»ÊýµÄÒ»¸ö·Ö½â¡£²»Í¬µÄ·Ö½âÊDZíʾÕâ¸ö×ÔÈ»Êý·Ö½â³ÉµÄËùÓÐ×ÔÈ»Êý²»ÍêÈ«Ïàͬ¡£ÀýÈ磺3=2+1ºÍ3=1+1+1±íʾ²»Í¬µÄ·Ö½â¡£¶ø3=2+1ºÍ3=1+2ΪÏàͬµÄ·Ö½â¡£ÏÖÔÚµÄÈÎÎñÊÇ£¬¸ø³öÒ»¸ö×ÔÈ»Êý£¬ÒªÇóËùÓв»Í¬µÄ·Ö½â·½°¸Êý¡£ÊäÈ룺ÊäÈëÎļþµÄÖ»ÓÐÒ»¸ö×ÔÈ»ÊýN£¬N<=10000¡£(input.txt)Êä³ö£ºÊä³öÎļþÖ»ÓÐÒ»¸öÊý£¬ÎªNµÄ·Ö½â·½°¸Êý¡£(output.txt) var
n:integer; x: integer;
a:array [0..10000] of integer;
procedure writestr(); var
i:integer; begin
write(n,'=',a[1]); for i:=2 to x do begin
write('+',a[i]); end; writeln; end;
function adda():integer; var
s:integer; i:integer; begin
s:=0;
for i:=1 to x do s:=s+a[i]; adda:=s; end;
function test(m:integer):boolean; var
i:integer; begin
if m<0 then begin
x: =x-2;
exit(false); end;
if m=0 then begin
writestr(); x:=x-2;
exit(false); end;
for i:=a[x] to n-1 do begin
x:=x+1; a[x]:=i;
if (not test(n-adda())) then begin
exit(true);
end; end;
test:=true; end;
begin
assign(input,'input.txt'); assign(output,'output.txt');
reset(input);
rewrite(output); read(n); x:=0; a[0]:=1; test(n);
close(input); close(output); end.
ÎÒÃÇÖªµÀ£¬ËùνµÄ¿¨ÁÐÁпËÔËË㣬ÊÇÖ¸ÈÎÒâÒ»¸öËÄλÊý£¬Ö»ÒªËüÃǸ÷¸öλÉϵÄÊý²»È«Ïàͬ£¬¾ÍÓÐÕâÑùµÄ¹æÂÉ£º³ÌÐòÃûΪstep.pas
°Ñ×é³ÉÕâ¸öËÄλÊýµÄËĸöÊý×ÖÓÉ´óµ½Ð¡ÅÅÁУ¬ÐγÉÓÉÕâËĸöÊý×Ö¹¹³ÉµÄ×î´óµÄ ËÄλÊý£»
°Ñ×é³ÉÕâ¸öËÄλÊýµÄËĸöÊý×ÖÓÉСµ½´óÅÅÁУ¬ÐγÉÓÉÕâËĸöÊý×Ö¹¹³ÉµÄ×îСµÄËÄλÊý£¨Èç¹ûËĸöÊý×ÖÖк¬ÓÐ0,Ôò´ËÊý²»×ãËÄ룩£»
Çó³öÒÔÉÏÁ½ÊýÖ®²î£¬µÃµ½Ò»¸öеÄËÄλÊý¡£ Öظ´ÒÔÉϹý³Ì£¬×ÜÄܵõ½×îºó½á¹ûÊÇ6174¡£
ÊÔ±àдһ¸ö³ÌÐò£¬ÊµÏÖ¿¨²¼ÁпËÔËË㣬ҪÇóÒÔÏÂÃæµÄ¸ñʽÊä³öÈ«²¿ÔËËã¹ý³ÌºÍ½á¹û£¬Í³¼ÆÐèÒªÔËËãµÄ²½Êý£¨ÈçÏÂÀýΪ3²½£©¡£ Êä³ö¸ñʽ£º n£½5346
6543-3456=3087 8730-378=8352 8532-2358=6174 SETP=3 var
n:intege r;
x,max,min:integer;
procedure getmaxmin(m:integer); var
a:array [1..4] of integer; i,j,tmp:integer; begin
i:=1;
while m>0 do begin
a[i]:=m mod 10; m:=m div 10; i:=i+1; end;
for i:=3 downto 1 do begin
for j:=1 to i do begin
if a[j]>a[j+1] then
begin
tmp:=a[j]; a[j]:=a[j+1];
a[j+1]:=tmp; end; end; end;
max:=1000*a[4]+100*a[3]+10*a[2]+a[1]; min:=1000*a[1]+100*a[2]+10*a[3]+a[4]; end;
procedure test(m:integer); var
i:integer; begin
if m=6174 then begin
write('SETP=',x); halt; end;
getmaxmin(m);
writeln(max,'-',min,'=',max-min); x:=x+1;
test(max-min); end;
begin
assign(input,'input.txt');
assign(output,'output.txt'); reset(input); rewrite(output); read(n);
writeln('n=',n); x:=0; test(n);
close(input); close(output); end.
253¡¢Òç³ö over.p as
ÎÊÌâÃèÊö
дһ¸ö³ÌÐò£¬¶ÁÈëÁ½¸ö·Ç¸ºÕûÊý¼°Ò»¸öÔËËã·ûºÅÅжÏÁ½ÕûÊý¼°ÔËËã½á¹ûÊÇ·ñ³¬³öÁËPASCALÓïÑÔÖйØÓÚ³¤ÕûÊýÀàÐ͵Ķ¨Òå¡££¨³¤ÕûÊý·¶Î§Îª-2147483648µ½2147483647£© ÊäÈëÎļþ
Ò»Ðаüº¬ÕûÊýºÍÔËËã·û£¬ÔËËã·û£¨¡®£«¡¯£¬¡®£¡¯£¬¡®*¡¯£¬¡®div¡¯£© Êä³öÎļþ
ÏÈÊä³öÒ»±éÔÊäÈ룬²¢ÔÚºóÃæÊä³ö0µ½3ÐÐÊʵ±ÄÚÈÝ£¬ È磺first number is too big second number is too big result number is too big ÀýÈ磺 ÊäÈë Êä³ö
300+3 300+3
300000*300000 300000*300000 result is too big
9999999999999999999+1 9999999999999999 999+1
first number is too big result number is too big ½¨ÒéÓÃint64À´´¦Àí£¬·¶Î§´óСÊÇ
£¨-9223372036854775808 .. 9223372036854775807 £©
259¡¢×î´ó×îС²î(MaxMin) ÎÊÌâÃèÊö£º
ÏÖÔÚÓÐN¸öÕýÕûÊý£¬Ã¿Ò»´ÎÈ¥µôÆäÖÐ2¸öÊýaºÍb£¬È»ºó¼ÓÈëÒ»¸öÊýa*b+1£¬ÕâÑù×îºóֻʣÏÂÒ»¸öÊýP¡£ÒªÇóÇó³ö×î´ó
µÄP¼ÇΪMaxP£¬×îСµÄp¼ÇMinP£¬ºÍËûÃǵIJîK=MaxP-MinP¡£ ¶ÔÓÚ¸ø¶¨µÄÊýÁУ¬±à³Ì¼ÆËã³öËüµÄMax,MinºÍK¡£ ÊäÈëÎļþ£¨MAXMIN.IN£©£º
µÚÒ»ÐÐÊÇÊýÁеij¤¶ÈN£¨²»³¬¹ý50£©£¬ÒÔÏÂNÐУ¬Ã¿ÐÐÒ»¸öÕýÕûÊý£¨²»³¬¹ý2룩¡£ Êä³öÎļþ£¨MAXMIN.OUT£©£º
Êä³öÒ»¹²ÈýÐУ¬Ã¿ÐÐÒ»¸öÕûÊý£¬ÒÀ´ÎΪmax,min,K¡£ ÊäÈëÊä³öÑùÀý£º
MAXMIN.IN MAXMIN.OUT 2 1 1 2 2 0 var
arr:array [0..49] of integer;
excepti:array [0..49] of integer; test:array [0..49] of integer; max,min,n:integer;
procedure InitExcept(); var
i:integer; begin
for i:=0 to n-1 do
excepti[i] := -1; end;
function IsIn(i:integer):boolean; var
j:integer; begin
for j:=0 to n-1 do begin
if excepti[j]=i then exit(true); end;
IsIn:=false; end;
procedure writestr(); var
i,r:integer; begin