Ë㷨ϰÌâ¼°½â´ð ÁªÏµ¿Í·þ

·¢²¼Ê±¼ä : ÐÇÆÚÁù ÎÄÕÂË㷨ϰÌâ¼°½â´ð¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ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