# Trung tâm xử lý sự cố > Hỏi-Đáp về Lập trình >  Pascal: Số đối xứng

## qnhan10a3

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ụ : 5, 44, 212, 71217. cho một số x = 371, số đối xứng lớn hơn và gần x nhất là 373.*
*yêu cầu* : cho một số nguyên dương x (x có số chữ số <= 100), *hãy tìm số đối xứng lớn hơn và gần x nhất.:a::a::a::a::a:*

----------


## tctexpress

hướng dẫn:
-nhập vào số dạng xâu
-xây dựng hàm phép cộng xâu vd: tong(s1,s2:string):string;
-xây dựng hàm kiểm tra đối xứng vd: doixung(s:string):boolean;
-dùng vòng lặp while not doixung(s1) do chứa câu lệnh: s1:=tong(s1,'1');
-in s1 ra màn hình.
bên dưới là hàm tổng:


```
function tong(s1,s2:string):string;
         var nho,i:byte;
             kq, temp:string;
             so1,so2:byte;
             err:integer;
         begin
              for i:=1 to abs(length(s2)-length(s1)) do
                  if length(s1)<length(s2) then
                     s1:='0'+s1
                  else s2:='0'+s2;
              nho:=0;
              kq:='';
              for i:=length(s1) downto 1 do
                  begin
                      val(s1[i],so1,err);
                      val(s2[i],so2,err);
                      str((so1+so2+nho) mod 10,temp);
                      kq:=temp+kq;
                      nho:=(so1+so2+nho) div 10;
                  end;
              if nho<>0 then
                 begin
                      str(nho,temp);
                      kq:=temp+kq;
                 end;
              tong:=kq;
         end;
```

----------

