10.04.2017

Số đối xứng lớn hơn gần nhất

Mét sè ®­îc gäi lµ sè ®èi xøng khi c¸c ch÷ sè cña nã ®èi xøng qua t©m. VÝ dô :  44, 212, 73237 lµ sè ®èi xøng.
LËp ch­¬ng tr×nh nhËp vµo mét sè nguyªn d­¬ng n (n cã kh«ng qu¸ 100 ch÷ sè), h·y t×m sè ®èi xøng lín h¬n vµ gÇn n nhÊt.
VÝ dô: n = 571, sè ®èi xøng lín h¬n vµ gÇn 571 nhÊt lµ sè 575.  n = 4231, sè ®èi xøng lín h¬n vµ gÇn 4231 nhÊt lµ sè 4334.
                                                                 Gi¶i
Var
    i,j,b,c:integer;
    s:String;
    a:array[1..101] of integer;
 BEGIN
      Write('Nhap n: '); Readln(s);
      for i:=1 to length(s) do val(s[i],a[i],b);
      c:=length(s);
      for i:=1 to (c div 2) do
          begin
               if a[i] > a[c-i+1] then a[c-i+1]:=a[i];
               if a[i] < a[c-i+1] then
                  begin
                       a[c-i]:=a[c-i]+1;
                       for j:=c-i downto i+1 do
                           if a[j]=10 then
                              begin
                                   a[j]:=0;
                                   a[j-1]:=a[j-1]+1;
                              end;
                       a[c-i+1]:=a[i];
                  end;
          end;
      Write('So dx lon hon gan nhat voi ',s,' la: ');
     For i:=1 to c do write(a[i]);
      Readln;
 END.

No comments:

Post a Comment

Cảm ơn bạn đã nhận xét