![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Составим программу для печати произведения двух чисел, которое может превы-шать максимально допустимое целое число.
Решение Процедура multiplication умножает число a на каждую цифру числа b, начиная с цифры единиц. Последняя цифра полученного произведения, сложенная с последней цифрой имеющегося в памяти частичного произведения, печатается, а все прочие цифры запоминаются - передаются как параметры при рекурсивном обращении к процедуре multiplication. В самом конце производится умножение на первую (левую) цифру числа b. На этом умножение заканчивается. Тогда печатается начало результата - накопившееся частичное произведение без последней цифры (s div 10), а после него при возвращении из рекурсии - все остальные цифры произведения (s mod 10) в обратном порядке по сравнению с тем, как они вычислялись при входе в рекурсию.
Program Problem4; { Большое произведение } uses WinCrt; var x, y: longint; {----------------------------------------------------------------------------------------} Procedure multiplication(a, b, s: longint); begin if b < > 0 then begin s: = s+a*(b mod 10); multiplication(a, b div 10, s div 10); write(s mod 10: 1) end else if s < > 0 then write(s) end; {----------------------------------------------------------------------------------------} begin write('Введите первый множитель '); readln(x); write('Введите второй множитель '); readln(y); write(x, '*', y: 1, ' = '); if ((x < 0) and (y > 0)) or ((x > 0) and (y < 0)) then write('-'); multiplication(abs(x), abs(y), 0); writeln end.
Ход работы
Задача 140. Ежедневно Незнайка учит половину от суммы выученных за два предыдущих дня иностранных слов и еще два слова. Знайка считает, что силы Незнайки иссякнут, когда нужно будет выучить 50 слов в день. Написать программу, определяющую, через сколько дней иссякнут силы у Незнайки, если в первые два дня он выучил по одному слову. 1._______________________________________________________________________ 2._______________________________________________________________________ 3._______________________________________________________________________ 4._______________________________________________________________________ 5._______________________________________________________________________
Задача 141. Татьяна Ларина, читая очередной французский роман, подсчитала сумму номеров прочитанных страниц. Обозначим эту сумму Q. Написать программу, определяющую номер последней прочитанной страницы. 1._______________________________________________________________________ 2._______________________________________________________________________ 3._______________________________________________________________________ 4._______________________________________________________________________ 5._______________________________________________________________________
Задача 142. Царевна-лягушка съедает ежедневно на 20% комаров больше, чем в предыдущий день, и еще два комара. Написать программу, определяющую через сколько дней количество съеденных комаров превысит 100, если в первый день было съедено 12 комаров. 1._______________________________________________________________________ 2._______________________________________________________________________ 3._______________________________________________________________________ 4._______________________________________________________________________ 5._______________________________________________________________________
Задача 143. На каждом следующем дне рождения Винни Пух съедает столько же пищи, что и на двух предыдущих. На двух первых днях рождения у Пятачка и Кролика он съел по 100 г пищи. Написать программу, определяющую, сколько килограммов пищи съест Винни Пух на пятнадцатом дне рождения. 1._______________________________________________________________________ 2._______________________________________________________________________ 3._______________________________________________________________________ 4._______________________________________________________________________ 5._______________________________________________________________________
Задача 144. Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько клеток будет через 3, 6, 9, 12,..., 24 часа. 1._______________________________________________________________________ 2._______________________________________________________________________ 3._______________________________________________________________________ 4._______________________________________________________________________ 5._______________________________________________________________________
Задача 145. Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней? 1._______________________________________________________________________ 2._______________________________________________________________________ 3._______________________________________________________________________ 4._______________________________________________________________________ 5._______________________________________________________________________
|