Предмет: Информатика, автор: Аноним

ПОМОГИТЕ ПОЖАЛУЙСТА решить через паскаль
Введите трехзначные числа, у которых вторая цифра равна произведения первой и последней цифре.

Ответы

Автор ответа: nargizayv
0

Ответ:

выбери и пиши ответ

Объяснение:

Последовательно делить число нацело на 10, пока от него не останется одна цифра, которая и будет первой. После этого найти ее сумму с последней цифрой, которая была найдена ранее.

Преобразовать число в строку, извлечь первый символ, после чего снова преобразовать его в число для нахождения суммы.

Здесь мы рассмотрим решение задачи только по первому варианту, без преобразования в строку.

var

a, b, sum, n: longint;

begin

readln(n);

a := n mod 10; // последняя цифра

n := n div 10;

while n > 0 do begin

b := n mod 10;

n := n div 10;

end;

writeln(a+b);

readln;

end.

В коде выше в переменную a записывается последняя цифра. После чего число делится нацело на 10 и эта цифра исключается. Далее в цикле постепенно число сокращается на один разряд с помощью div. Перед этим удаляемая цифра присваивается переменной b. Когда все цифры числа будут удалены, то в переменной b останется первая. После цикла значение переменных складывается.

Более компактное решение:

var

a: longint;

b: byte;

begin

readln(a);

b := a mod 10;

while a >= 10 do

a := a div 10;

writeln(b+a);

end.

Здесь число a в цикле постепенно сокращается до одного первого разряда. Перед этим самый младший разряд, т. е. последняя цифра числа сохраняется в переменной b.

Решить задачу можно не только с помощью цикла while, но и repeat:

var a,b,c,d:integer;

begin

readln(a);

d := a mod 10;

repeat

b := a mod 10;

a := a div 10;

until a=0;

c := d+b;

writeln(c);

end.

Добавить комментарий

Комментарии

Длина числа

Владимир (не проверено)

07/03/2019

Длину числа можно вычислить по формуле log10(x), но получится не целое число, так что его придется округлить в меньшую сторону floor( log10(x)


nargizayv: дай лучший ответ
Похожие вопросы
Предмет: Русский язык, автор: daniix
Предмет: Алгебра, автор: 9LASTY7