Здравствуйте! опять я к Вам за помощью. Вот суть задачи: Дано натуральное число n. Среди чисел 1, 2, …, n найти все такие, запись которых совпадает с последними цифрами записи их квадрата.. Я никак не могу сообразить с алгоритмом...Я понимаю, что нужно использовать цикл и скорее всего div и mod...Но как это все совместить..Если бы хотя бы было известно n (я имею ввиду четырехзначное оно, или может восьмизначное). Подскажите, пожалуйста, алгоритм.
volvo
18.02.2008 13:49
Я бы сделал что-то типа:
... 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; ...
(набирал прямо здесь, так что могут быть помарки, но алгоритм, по-моему, рабочий...)
Анюта
18.02.2008 15:04
Большое спасибо,Volvo! Дома попробую реализовать!
Добавлено через 16 мин. Volvo!!!! Спасибо, набрала сейчас в Паскале, все работает!!! Удачи тебе! Еще раз огромное спасибо!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.