Viết chương trình nhập vào số nguyên dương N từ bàn phím (N <10^9 ). Hãy in ra số nguyên lớn nhất nhỏ hơn N có tổng các chữ số bằng 10. Ví dụ Nhập N=

Viết chương trình nhập vào số nguyên dương N từ bàn phím (N <10^9 ). Hãy in ra số nguyên lớn nhất nhỏ hơn N có tổng các chữ số bằng 10. Ví dụ Nhập N=200,kết quả 190(làm trên pascal)

0 bình luận về “Viết chương trình nhập vào số nguyên dương N từ bàn phím (N <10^9 ). Hãy in ra số nguyên lớn nhất nhỏ hơn N có tổng các chữ số bằng 10. Ví dụ Nhập N=”

  1. Chỉ tính số dương

    program bai_giai;

    uses crt;

    var n:longint;

    {—HAM-KT—}

    function kt(k:longint):boolean;

    var t,i:byte;

    begin

          t:=0;

          while k>0 do

                begin

                      i:=k mod 10;

                      t:=t+i;

                      k:=k div 10;

                end;

          if t=10 then kt:=true else kt:=false;

    end;

    {—CT-chinh—}

    BEGIN

          clrscr;

          write(‘Nhap N= ‘);   readln(n);

          n:=n-1;

          while (kt(n)=false) and (n>=19) do n:=n-1;

          if n<19 then write(‘Khong co so nao hop le’)

                else write(‘So thoa man la: ‘,n);

          readln;

    end.

    Tính cả số âm

    program bai_giai;

    uses crt;

    var n:longint;

    {—HAM-KT—}

    function kt(k:longint):boolean;

    var t,i:byte;

    begin

          t:=0;

          while k>0 do

                begin

                      i:=k mod 10;

                      t:=t+i;

                      k:=k div 10;

                end;

          if t=10 then kt:=true else kt:=false;

    end;

    {—CT-chinh—}

    BEGIN

          clrscr;

          write(‘Nhap N= ‘);   readln(n);

          n:=n-1;

          while (kt(n)=false) do n:=n-1;

                write(‘So thoa man la: ‘,n);

          readln;

    end.

    Bình luận
  2. uses crt;
    var n,i,kt,a,e,j:longint; s:string;
    begin
    clrscr;
       write(‘n=’);readln(n);
       i:=n;
       repeat
          dec(i); kt:=0;
          str(i,s);
          for j:=1 to length(s) do
             begin
                val(s[j],a,e);
                kt:=kt+a;
             end;
       until (kt=10)or(i=0);
       If i=0 then writeln(‘Kkong co so nao hop le!!!!’) else writeln(i);
    readln
    end.

    Bình luận

Viết một bình luận