Giả thiết N là số nguyên dương. Số nguyên M là tổng của N với các chữ
40
09/05/2024
Giả thiết N là số nguyên dương. Số nguyên M là tổng của N với các chữ số của nó. N được gọi là số nguồn của M.
Ví dụ: N=245, khi đó M=245+2+4+5=256, như vậy nguồn của 256 là 245.
Cho số nguyên M( M không quá 100 chứ số) hãy tìm nguồn nhỏ nhất của nó. Nếu M không có nguồn thì đưa ra số 0.
Trả lời
uses crt;
var m,ans:string;
i:longint;
function add(a,b:string):string;
var ans:string;
sum,carry,i:longint;
begin
carry:=0; ans:='';
while length(a) < length(b) do a:='0' + a;
while length(b) < length(a) do b:='0' + b;
for i:=length(a) downto 1 do
begin
sum:=ord(a[i]) - 48 + ord(b[i]) - 48 + carry;
carry:=sum div 10;
ans:=chr(sum mod 10 + 48) + ans;
end;
if carry > 0 then ans:='1' + ans;
exit(ans);
end;
begin
clrscr;
readln(m);
ans:='0';
for i:=1 to length(m) do
ans:=add(ans,m[i]);
if ans > '0' then
writeln(add(m,ans))
else
writeln(0);
readln;
end.