Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2011, 13:00   #1
Mr.KOHCEPBATOP
 
Регистрация: 02.10.2011
Сообщений: 7
По умолчанию циклические алгоритмы

1) Найти трехзначное число, квадрат которого заканчивается тремя одинаковыми цифрами, отличный от нуля.
2) Выяснить, является ли заданное число палиндромом. (Например, число 232, 667766, 5697965 - палиндромы.)
3) Выяснить, имеет ли число N одинаковые цифры. Если имеет, то какие и сколько раз повторяется каждая цифра?
Mr.KOHCEPBATOP вне форума Ответить с цитированием
Старый 02.10.2011, 13:37   #2
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Раз все молчат, попробую ответить
Код:
var i,j,V,d : integer;
    S   : string;
    Poly: boolean;
begin
  // 1) Найти трехзначное число, квадрат которого
  // заканчивается тремя одинаковыми цифрами, отличный от нуля.
  for i:=101 to 999 do
  begin
   S := _str(i*i mod 1000);
   if (S[1]<>'0') and (S[1]=S[2]) and (S[2]=S[3]) then
  writeln(format('%d*%d = %d',[i,i,i*i]));
  end;
  write('Enter value '); readln(V);
  // 2) Выяснить, является ли заданное число палиндромом.
  // (Например, число 232, 667766, 5697965 - палиндромы.)
  S := _str(V);
  Poly := true;
  v:= LenGth(S);
  for i:=0 to (v div 2) do
  if S[i+1]<> S[v-i] then
  begin
   Poly := false;
   Break;
  end;
  if Poly then
   writeln(S+' polydrom ') else
   writeln(S+' not polydrom');

 // Выяснить, имеет ли число N одинаковые цифры.
 // Если имеет, то какие и сколько раз повторяется каждая цифра?
  write('Enter value '); readln(V);
  S := _str(V); v:= LenGth(S);
  for i:=1 to v do
  if S[i]<>#0 then
  begin
    d:=1;
    for j:=i+1 to v do
    if S[i]=S[j] then
    begin
     S[j] := #0;
     Inc(d);
    end;
    if d>1 then
    writeln(S[i]+' - count ='+_str(d));
  end;
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 02.10.2011, 16:04   #3
Mr.KOHCEPBATOP
 
Регистрация: 02.10.2011
Сообщений: 7
По умолчанию

офигеть О_О
большое пребольшое спасибо!
ты спас мне жизнь!
вот бы и мне так научиться ......
еще раз большое спасибо!
Mr.KOHCEPBATOP вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль.Циклические алгоритмы. Jimmy_93 Помощь студентам 1 04.05.2011 16:57
Циклические алгоритмы Anwen Помощь студентам 0 20.11.2010 16:12
Циклические алгоритмы Lena neznayka Паскаль, Turbo Pascal, PascalABC.NET 7 14.06.2010 12:08
ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ юра 3 Паскаль, Turbo Pascal, PascalABC.NET 1 25.12.2008 16:25