Определить количество разрядов числа и вывести на экран в определенном формате

Задача

Ввести число. Если количество его разрядов меньше пяти, то вывести его на экран, дописав нули перед числом так, чтобы в итоге получилось пять знаков. Если количество разрядов больше пяти, то вывести только первые пять разрядов. Если число пятизначное, то вывести его как есть.

Решение

Описание переменных: 

a - введенное число;
b - хранение результата выполнения операций над числом a;
n - количество разрядов числа;
diff - разница между числом 5 и n.

Алгоритм решения задачи: 

  1. Определить количество разрядов числа.
  2. Найти разность между необходимым числом разрядов (уменьшаемое) (в данном случае 5) и полученным значением (вычитаемое).
  3. Если разность положительна, значит в введенном числе меньше пяти разрядов. В этом случае в цикле дописываем нули перед числом.
  4. Если разность отрицательна, то введенное число имеет больше пяти разрядов. В этом случае в цикле делим его нацело на 10.
  5. Во всех остальных случаях выводим число как есть.

Программа на языке Паскаль: 

 

const
    D = 5;
var
    a,b: longint;
    n,diff: integer;
begin
    write('a = '); readln(a);
    b := a;
    n := 0;
    if b = 0 then n := 1;
    while b > 0 do begin
        b := b div 10;
        n := n + 1;
    end;
 
    diff := D-n;
    if diff > 0 then begin
        while diff > 0 do begin
            write('0');
            diff := diff - 1;
        end;
        writeln(a);
    end
    else begin
        if diff < 0 then begin
            b := a;
            while diff < 0 do begin
                b := b div 10;
                diff := diff + 1;
            end;
            writeln(b);
        end
        else
            writeln(a);
    end;
 
readln;
end.

 

Тема

Циклы

Уровень

Комбинированные задачи