ВВЕРХ
ВНИЗ

Цифры трехзначного числа

На предыдущей странице мы рассматривали задачу отделения цифр от двузначного числа. На этой странице решаем задачи Integer9 - Integer16 из задачника Абрамяна, в которых займёмся работой с цифрами трехзначного числа.

Integer9. Дано трехзначное число. Используя одну операцию деления нацело, вывести первую цифру данного числа (сотни).

Для примера возьмем трехзначное число 671. Если его разделить на 100 и отбросить остаток, то получим 6 — первая цифра (число сотен). Поскольку для целочисленного деления существует операция div, то здесь достаточно вычислить 671div 100, что возвратит нам результат 6. Аналогично мы поступали при вычислении первой цифры двузначного числа в программе Integer6, только там нужно было делить на 10. Этот способ используется и в данной программе.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
var
  N: word;

begin
  write('N = '); 
  readln(N); { <-- вводим трехзначное число }
  writeln; 
  { Находим и выводим первую цифру числа
  как целую часть при делени на 100: } 
  writeln('Первая цифра числа: ', N div 100);
  readln
end.

Integer10. Дано трехзначное число. Вывести вначале его последнюю цифру (единицы), а затем — его среднюю цифру (десятки).

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
var
  N: word;

begin
  write('N = ');
  readln(N); { <-- вводим трехзначное число }
  writeln;
  N := N mod 100; { <== Последние две цифры }
  { Выводим последнюю и среднюю цифры числа: }
  writeln('Последняя цифра: ', N mod 10);
  writeln('Средняя цифра:   ', N div 10);
  readln
end.

Integer11. Дано трехзначное число. Найти сумму и произведение его цифр.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
var
  N: word; { Трехзначное число }
  t1, t2, t3: byte; { Цифры трехзначного числа }

begin 
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим трехзначное число }
  writeln;
  t3 := N mod 10; { <== третья цифра }
  N := N div 10;  { <== число созданное первыми двумя цифрами }
  t2 := N mod 10; { <== вторая цифра }
  t1 := N div 10; { <== первая цифра }
  writeln('Сумма цифр: ', t1 + t2 + t3);
  writeln('Произведение цифр: ', t1 * t2 * t3);
  readln
end.

Integer12. Дано трехзначное число. Вывести число, полученное при прочтении исходного числа справа налево.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
var
  N: word; { Трехзначное число }
  t1, t2, t3: byte; { Цифры трехзначного числа }

begin
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим число }
  writeln;
  t3 := N mod 10; { <== третья цифра - единицы }
  N := N div 10;  { <== число созданное первыми двумя цифрами }
  t2 := N mod 10; { <== вторая цифра - десятки }
  t1 := N div 10; { <== первая цифра - сотни }
  { t3 - сотни, t2 - десятки, t1 - единицы: }
  N := 100 * t3 + 10 * t2 + t1; { <== перевернутое число }
  writeln('Прочитанное в обратном порядке число: ', N);
  readln
end.

Второй вариант не предусматривает дополнительных переменных для хранения цифр числа:

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
var
  N: word; { Трехзначное число }

begin
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим число }
  writeln;
  { Вычисляем три цифры числа:
   1) N div 100 - первая цифра;
   2) N div 10 mod 10 - вторая цифра;
   3) N mod 10 - третья цифра.
  Составляем число с переставленными цифрами справа налево: }
  N := 100 * (N mod 10) + 10 * (N div 10 mod 10) + N div 100;
  writeln('Прочитанное в обратном порядке число: ', N);
  readln
end.

Integer13. Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее справа. Вывести полученное число.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
var
  N: word;

begin 
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим число }
  writeln;
  { N div 100 - первая цифра данного числа,
    N mod 100 - число составлено из последних двух цифр данного числа }
  N := 10 * (N mod 100) + N div 100; { <== новое число }
  writeln('Преобразованное число: ', N);
  readln
end.

Integer14. Дано трехзначное число. В нем зачеркнули первую справа цифру и приписали ее слева. Вывести полученное число.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
var
  N: word; { Трехзначное число }

begin
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим число }
  writeln;
  { N mod 10 - последняя цифра данного числа,
    N div 10 - число составлено из первых двух цифр числа N }
  N := 100 * (N mod 10) + N div 10; { <== Формируем новое число }
  writeln('Последняя цифра стала первой: ', N);
  readln
end.

Integer15. Дано трехзначное число. Вывести число, полученное при перестановке цифр сотен и десятков исходного числа (например, 123 перейдет в 213).

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
var
  N: word;
  p: byte;

begin
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим число }
  writeln;
  p := N mod 10; { <-- запоминаем последнюю цифру числа }
  N := N div 10; { <== удаляем последнюю цифру, получив двузначное число }
  N := 10 * (N mod 10) + N div 10; { <== Меняем цифры местами }
  N := 10 * N + p; { <== новое трехзначное число }
  writeln('Преобразованное число: ', N);
  readln
end.

Второй вариант решения задачи Integer15 – это аналог второго способа решения Integer12:

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
var
  N: word; { Трехзначное число }

begin
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим число }
  writeln;
  { Вычисляем три цифры числа:
   1) N div 100 - первая цифра;
   2) N div 10 mod 10 - вторая цифра;
   3) N mod 10 - третья цифра.
  Составляем число с переставленными цифрами справа налево: }
  N := 100 * (N div 10 mod 10) + 10 * (N div 100) + N mod 10;
  writeln('Две первые цифры меняем местами: ', N);
  readln
end.

Integer16. Дано трехзначное число. Вывести число, полученное при перестановке цифр десятков и единиц исходного числа (например, 123 перейдет в 132).

Первый вариант:

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
var
  N, p: word;

begin
  write('N = ');
  readln(N); { <-- вводим число }
  p := N div 100; { <== запоминаем первую цифру числа }
  { Находим число, составленое из последних двух цифр числа N:}
  N := N mod 100;
  { N mod 10 - вторая цифра становится первой,
    N div 10 - певая цифра становится второй: }
  N := 10 * (N mod 10) + N div 10;
  N := 100 * p + N; { <== новое число }
  writeln;
  writeln('Преобразованное число: ', N);
  readln
end.

Второй вариант:

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
var
  N: word;

begin
  write('Вводим трехзначное число: ');
  readln(N); { <-- вводим число }
  { Вычисляем три цифры числа:
   1) N div 100 - первая цифра;
   2) N div 10 mod 10 - вторая цифра;
   3) N mod 10 - третья цифра.
  Составляем число с переставленными цифрами справа налево: }
  N := 100 * (N div 100) + 10 * (N mod 10) + N div 10 mod 10;
  writeln('Две последние цифры меняем местами: ', N);
  readln
end.



Яндекс.Метрика