Задача
Найти сумму первой и последней цифр любого целого положительного числа.
Похожие задачи
Решение
Извлечь последнюю цифру числа легко: достаточно найти остаток от деления на 10. В языке Паскаль это делается с помощью оператора mod.
Чтобы извлечь первую цифру числа, надо знать его разрядность, после чего найти остаток от деления 10 в степени разрядность минус 1. Так, если число трехзначное, то надо делить на 100, т. е. 10 2 . Однако программа разрядности числа не знает.
Поэтому, чтобы извлечь первую цифру числа, можно пойти двумя путями:
- Последовательно делить число нацело на 10, пока от него не останется одна цифра, которая и будет первой. После этого найти ее сумму с последней цифрой, которая была найдена ранее.
- Преобразовать число в строку, извлечь первый символ, после чего снова преобразовать его в число для нахождения суммы.
Здесь мы рассмотрим решение задачи только по первому варианту, без преобразования в строку.
В коде выше в переменную a записывается последняя цифра. После чего число делится нацело на 10 и эта цифра исключается. Далее в цикле постепенно число сокращается на один разряд с помощью div. Перед этим удаляемая цифра присваивается переменной b. Когда все цифры числа будут удалены, то в переменной b останется первая. После цикла значение переменных складывается.
Более компактное решение:
Здесь число a в цикле постепенно сокращается до одного первого разряда. Перед этим самый младший разряд, т. е. последняя цифра числа сохраняется в переменной b.
Решить задачу можно не только с помощью цикла while, но и repeat:
Исходник программы, которая находит сумму всех цифр в числе, введённого пользователем с клавиатуры. Исходник основан на цикле WHILE. Есть пояснительные комментарии к каждой строке. Увидеть исходный код и скачать скомпилированный исходник вы можете далее.
Исходный код программы, которая находит сумму цифр числа:
На предыдущей странице мы рассматривали задачу отделения цифр от двузначного числа. На этой странице решаем задачи Integer9 – Integer16 из задачника Абрамяна, в которых займёмся работой с цифрами трехзначного числа.
Для примера возьмем трехзначное число 671. Если его разделить на 100 и отбросить остаток, то получим 6 — первая цифра (число сотен). Поскольку для целочисленного деления существует операция div, то здесь достаточно вычислить 671div 100 , что возвратит нам результат 6. Аналогично мы поступали при вычислении первой цифры двузначного числа в программе Integer6, только там нужно было делить на 10. Этот способ используется и в данной программе.