Помощь - Поиск - Пользователи - Календарь
Полная версия: Циклическая программа
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Анюта
Здравствуйте! опять я к Вам за помощью. Вот суть задачи: Дано натуральное число n. Среди чисел 1, 2, …, n найти все такие, запись которых совпадает с последними цифрами записи их квадрата.. Я никак не могу сообразить с алгоритмом...Я понимаю, что нужно использовать цикл и скорее всего div и mod...Но как это все совместить..Если бы хотя бы было известно n (я имею ввиду четырехзначное оно, или может восьмизначное). Подскажите, пожалуйста, алгоритм.
volvo
Я бы сделал что-то типа:
  ...
for i := 1 to n do begin
sq := sqr(i); { Находишь квадрат числа }
T := i; { Запоминаешь само число, чтоб его можно было изменять }
while T > 0 do begin
if T mod 10 = sq mod 10 then begin { сравниваешь последние цифры числа и квадрата }
T := T div 10; sq := sq div 10;
end
else break; { как только они не равны - выходишь из внутреннего цикла }
end;

if T = 0 then writeln(i); { если просмотрели число полностью - печатать результат }
end;
...


(набирал прямо здесь, так что могут быть помарки, но алгоритм, по-моему, рабочий...)
Анюта
Большое спасибо,Volvo! give_rose.gif Дома попробую реализовать!

Добавлено через 16 мин.
Volvo!!!! Спасибо, набрала сейчас в Паскале, все работает!!! Удачи тебе! Еще раз огромное спасибо! angel.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.