Определить, во сколько раз последняя цифра больше первой в числе - Pascal ABC
Формулировка задачи:
Помогите составить!2. Вводится с клавиатуры число в диапазоне [1000 . . 10000]. Найти сумму цифр, составляющих число, и определить, во сколько раз последняя цифра больше первой в этом числе. Если сумма цифр превышает 13, то сообщить об этом.
Решение задачи: «Определить, во сколько раз последняя цифра больше первой в числе»
textual
Листинг программы
Function SumCifr(A : Longint) : Integer; Begin If A>0 then SumCifr:=(A mod 10) +SumCifr(A div 10) else SumCifr:=0; End; Function GetNumCifr(A : Longint) : Integer; Begin If A<=0 then GetNumCifr:=0 else GetNumCifr:=1+GetNumCifr(A div 10); End; Function GetNumInPos(B : Longint; N : Byte) : Byte; Var ll : Integer; kk : LongInt; Begin kk:=B; ll:=1; While ll<N do Begin Inc(ll); kk:=kk div 10; End; GetNumInPos:=kk mod 10; End;
Объяснение кода листинга программы
- Функция
SumCifrпринимает целочисленное значениеAи возвращает целое число. Внутри функции используется операторmodдля определения последней цифры числаA. ЕслиAбольше нуля, то последняя цифра вычисляется как остаток от деленияAна 10. Затем вызывается рекурсивно функцияSumCifrдля числаAделенного на 10. ЕслиAменьше или равно нулю, то функция возвращает 0. - Функция
GetNumCifrпринимает целочисленное значениеAи возвращает целое число. Внутри функции используется операторmodдля определения последней цифры числаA. ЕслиAбольше нуля, то последняя цифра вычисляется как остаток от деленияAна 10. Затем вызывается рекурсивно функцияGetNumCifrдля числаAделенного на 10. ЕслиAменьше или равно нулю, то функция возвращает 0. - Функция
GetNumInPosпринимает целочисленное значениеBи байтовое значениеNи возвращает байтовое значение. Внутри функции используется циклWhile, который выполняется, пока значение переменнойllменьше значенияN. На каждой итерации цикла значение переменнойllувеличивается на 1, а значение переменнойkkделится на 10. В конце функция возвращает последнюю цифру числаkkв виде байтового значения.