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ó

Vietjack.me giới thiệu bộ câu hỏi ôn tập Tin học có đáp án được biên soạn bám sát chương trình học giúp bạn ôn luyện và bổ sung kiến thức môn Tin học tốt hơn. Mời các bạn đón xem:

1 623 lượt xem


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ó

Đề bài: 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.

Lời giả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.

1 623 lượt xem


Xem thêm các chương trình khác: