Условие задачи: Написать программу, которая печатает TRUE или FALSE в зависимости от того, выполняются или нет указанные условия. Определить, равна ли сумма двух первых цифр заданного четырехзначного числа сумме двух его последних цифр. (Язык Pascal)
Сложность: легкая.
Решение задачи
Для начала стоит сказать что многие думают, что эту задачу надо решать следующим образом: сначала найти сумму первых 2-х чисел, потом вторых, потом через условие (if then else), вывести TRUE или FALSE, но это не правильно, в таких задачах пользоваться условием нельзя. Сейчас я вам напишу правильно решение.
Для того чтобы решить задачу нам понадобятся следующие переменные :
- Переменная number — для заданного числа
- Переменная sum1 — для суммы первых двух чисел
- Переменная sum2 — для суммы вторых двух чисел
- Переменная res — для ответа
Начнем мы с каркаса нашей программы
1
2
3
4
5
6
7
8
|
var number, sum1, sum2 : integer ; res : boolean ; begin write ( 'Введите четырехзначное число : ' );readln(number); sum1 := 0 ; sum2 := 0 ; end . |
Тут мы объявили переменные, переменная res у нас логического типа, т.е. может вывести True или False.
Дальше мы попросили пользователя ввести число и присвоили sum1 и sum2 нули, т.е. начальные значения, чтобы не было ошибок.
Дальше давайте найдем сумму первых двух чисел, тут нам помогут операции mod и div, подробнее про них (тут), с помощью их мы будет разбивать число на цифры.
Сначала первые две, допустим number у нас равно 1234, ищем сумму первых 2-х цифр:
1
2
|
sum1 := (number div 1000 ) + sum1; sum1 := (number div 100 ) mod 10 + sum1; |
Сначала мы нашли 1, потом уже 2. Теперь у нас есть сумма первых двух цифр. Дальше следующие две цифры:
1
2
|
sum2 := (number mod 10 ) + sum2; sum2 := (number mod 100 ) div 10 + sum2; |
Сначала нашли цифру 4 потом уже 3. Теперь нужно проверить равна ли сумма, для этого сделаем следующее:
1
|
res := (sum1 = sum2); |
И вот тут мы сравниваем две суммы. В переменной res у нас будет либо True или False. Осталось только вывести результат.
Всё решение задачи Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
var number, sum1, sum2 : integer ; res : boolean ; begin write ( 'Введите четырехзначное число : ' );readln(number); sum1 := 0 ; sum2 := 0 ; sum1 := (number div 1000 ) + sum1; sum1 := (number div 100 ) mod 10 + sum1; sum2 := (number mod 10 ) + sum2; sum2 := (number mod 100 ) div 10 + sum2; res := (sum1 = sum2); writeln (res); end . |