Используя функцию найти все АВТОМОРФНЫЕ числа из промежутка от A до B. Автоморфные...

0 голосов
64 просмотров

Используя функцию найти все АВТОМОРФНЫЕ числа из промежутка от A до B. Автоморфные числа-когда квадрат это числа оканчивается на само себя.Например 6^2=36(заканчивается на 6)


Информатика (44 баллов) | 64 просмотров
0

И какие границы А - В ?

0

Т.е. можно написать в арифметике произвольной разрядности с типом BigInteger в PascalABC.Net 3.1, но нужно ли это?

0

Любые. Сначала нужно ввести границы например от 2 до 100 и программа должна вывести ВСЕ автоморфные числа из этого промежутка

0

Нельзя любые. Это же целочисленная арифметика и при больших числах квадрат может вызвать переполнение.

0

Смысл найти все числа из этого промежутка

0

Так смысл найти решение или смысл в том, чтобы в функции поиграть?

0

нет,нет нужно брать INTEGER

0

но нужно применить функцию

0

Можно взять LONGINT.

0

Мы пишем любой промежуток.Из этого промежутка программа должна вывести все автоморфные числа.всё.

Дан 1 ответ
0 голосов
Правильный ответ

// PascalABC.NET 3.1, сборка 1214 от 09.04.2016
function AutoMorph(n:integer):boolean;
begin
  var s1:=n.ToString;
  Result:=(s1=(n*n).ToString.Right(s1.Length))
end;

begin
  var a,b:integer;
  Write('Введите а и b: '); Read(a,b);
  for var i:=a to b do
    if AutoMorph(i) then Print(i)
end.

Тестовое решение:
Введите а и b: 1 10000
1 5 6 25 76 376 625 9376

Попробовал переписать функцию в более примитивный вид. По-моему, она не стала проще, только удлинилась...

function AutoMorph(n:integer):boolean;
begin
  var s1:=IntToStr(n); // n переводим в строковое представление
  var s2:=IntToStr(n*n); // n*n переводим в строковое представление
  var l1:=Length(s1); // длина строки s1
  s2:=RightStr(s2,l1); // правые l1 символов из s2
  Result:=(s1=s2)
end;

(142k баллов)
0

Спасибо огромное,только вот проблема в том,что мы вообще так не пишем.точнее не изучали .Например Result:=(s1=(n*n).ToString.Right(s1.Length)) эта строчка.Остальное все понятно.Нельзя ли её как-нибудь переделать?

0

Я не понимаю, что для Вас означает попроще.

0

Можно ли программу сделать попроще?

0

Но ведь это он и есть...

0

PascalABC.net 3.1

0

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

0

По мне - она и так примитивная.