Nhập một số nguyên và số k , xoá đi k chữ số trong số nguyên đó sao cho số còn lại có giá trị bé nhất

Nhập một số nguyên và số k , xoá đi k chữ số trong số nguyên đó sao cho số còn lại có giá trị bé nhất

0 bình luận về “Nhập một số nguyên và số k , xoá đi k chữ số trong số nguyên đó sao cho số còn lại có giá trị bé nhất”

  1. Ý TƯỞNG:

    while (dem<k) do:

       -Kiểm tra xem 2 số liền kề nhau số nào lớn hơn thì xóa bỏ

       -nếu kiểm tra đến hết xâu mà không có cặp số nào như trên thì xóa cuối cùng

    uses crt;
    var n,tam : string;
        i,j,k,dem : integer;
        ktra : boolean;
    BEGIN
        clrscr;
        write(‘Nhap N: ‘);
        readln(n);
        write(‘Nhap K: ‘);
        readln(k);
        dem := 0;
        ktra := false;
        while (dem<k) do
           Begin
              ktra := false;
              for i := 1 to length(n)-1 do
                begin
                      while (n[i]>n[i+1]) do
                       begin
                        delete(n,i,1);
                        inc(dem);
                        ktra := true;
                        if (dem>=k) then break;
                       end;
                end;
              if (ktra=false) then
               begin
                inc(dem);
                delete(n,length(n),1);
               end;
           End;
        writeln(n);
        readln;
    END.

    Bình luận
  2. nhập 1 số
    gán số đó vào 1 biến a
    chạy vòng lặp
    {
    lấy số a đó % cho 10 và gán vào biến 1
    lấy số a chia cho 10, gán cho a
    lấy số a đó % cho 10 và gán vào biến 2
    lấy số a chia cho 10, gán cho a
    so sánh biến 2 và biến 1 kiểm tra biến nào lớn hơn thì gán vào biến số 3
    }
    cứ thế cho hết vòng lặp.

    Ngoài ra có thể chỉ cần dùng 1 biến a hoặc 1 biến a và 1 biến tạm nếu b biết linh hoạt sử dụng, cách trên dùng 4 biến cho đơn giản.

    Bình luận

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