Условие задачи: Написать программу, которая печатает TRUE или FALSE в зависимости от того, выполняются или нет указанные условия. Определить, делится ли сумма цифр пятизначного числа на его первую цифру.
(Язык Pascal)
Сложность: легкая.
Решение задачи
Для начала продумаем наше решение. Сперва найдем сумму пяти цифр, потом отдельно найдем первую цифру и потом проверим делится ли нацело сумма на первую цифру.
Для того чтобы решить задачу нам понадобятся следующие переменные:
Начнем мы с каркаса нашей программы
var
number, num1, sum : res : write readln; |
Тут мы объявили все переменные и попросили пользователя ввести число. Дальше нам надо разбить число на цифры делать это мы будем с помощью операций mod и div.
Если вы не понимаете как они работают ОБЯЗАТЕЛЬНО читайте про них (тут).
sum := 0 ; // присваиваем начальное зн-е сумме, чтобы не было ошибок // допустим у нас число 23124 sum := sum + (number div 10000 ); // ищем первую цифру числа, это будет 2 sum := sum + (number div 1000 mod 10 ); // вторая — 3 sum := sum + (number div 100 mod 10 ); // трерья — 1 sum := sum + (number div 10 mod 10 ); // четвертая — 2 sum := sum + (number mod 10 ); // пятая — 4 |
Я не стал делать для каждой цифры свою переменную, тут это не нужно, тут сделано так, сначала нашли первую цифру и прибавили к сумме получилось 2, теперь в переменной sum у нас есть первая цифра, дальше нашли вторую цифру и прибавили её к переменной sum, теперь у нас в переменной sum сумма двух первых цифр и т.д.
Ну а теперь нужно найти первую цифру, пишем:
num1 := number div 10000 ; // отдельно ищем 1-ю цифру |
Теперь осталось проверить делиться ли сумма на первую цифру, тут нам поможет операция mod, если остаток от деления будет равен 0, то значит делиться (mod — ищет остаток от деления)
res := (sum mod num1 = 0 ); // проверяем делится ли нацело сумма на 1-ю цифру writeln |
Всё решение задачи Pascal
var
number, num1, sum : res : write sum := // допустим у нас число 23124 sum := sum + (number sum := sum + (number sum := sum + (number sum := sum + (number sum := sum + (number num1 := number res := (sum writeln readln; |