• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Массив в Pascal или PHP

Tamerlaan_Sg

Ученик
Регистрация
26 Мар 2009
Сообщения
11
Реакции
0
Баллы
0
Массив в Pascal или PHP

помогите пожалуйста составить программу по следующему содержанию:
ПРограмма на Pascal или PHP, которая составит массив из "красивых чисел" начиная от 5000 и заканчивая 1000000. Пример "красивых" чисел 5000, 5001, 5002...5555 и т.д. Массив вывести в файл.
Огромное спасибо.
 
Уточните, пожалуйста, что в данном случае понимается под "красивыми" числами. И желательно определение, а не пример.
 
В данном случае подразумеваются числа, корорые состоят из одинаковых цифр, числа, которые заканчиваются на 0, либо если их разбить на 2 части, то эти части одинаковы (585585)
 
В данном случае подразумеваются числа, корорые состоят из одинаковых цифр, числа, которые заканчиваются на 0, либо если их разбить на 2 части, то эти части одинаковы (585585)

И к какой из этих трех категорий относятся 5001 и 5002?
 
Извините, не дописал - числа содержащие внутри себя все нули
 
Извините, не дописал - числа содержащие внутри себя все нули

Ну тогда - извольте (Паскаль):

VAR
Numb:LongInt;
Length,i:Byte;
f:TEXT;

FUNCTION Similar_Digits(Lng:Byte; Num:LongInt):BOOLEAN;
VAR
i,DD1,DD:BYTE;
Nm:LongInt;
SD:BOOLEAN;
BEGIN
SD:=TRUE;
Nm:=Num;
DD1:=Nm mod 10;
Nm:=Nm div 10;
i:=1;
REPEAT
INC(i);
DD:=Nm mod 10;
Nm:=Nm div 10;
IF DD<>DD1 THEN SD:=FALSE;
UNTIL (SD=FALSE) OR (i=Lng);
Similar_Digits:=SD;
END;

FUNCTION End_Zero(Num:LongInt):BOOLEAN;
BEGIN
IF (Num mod 10)=0 THEN
End_Zero:=TRUE
ELSE
End_Zero:=FALSE;
END;

FUNCTION Symmetry(Lng:Byte; Num:LongInt):BOOLEAN;
VAR
Sm:BOOLEAN;
Lng2,i:BYTE;
Denom:WORD;
BEGIN
IF (Lng mod 2)>0 THEN Sm:=FALSE ELSE
BEGIN
Lng2:=Lng div 2;
i:=0;
Denom:=1;
REPEAT
INC(i);
Denom:=Denom*10;
UNTIL i=Lng2;
IF (Num div Denom)=(Num mod Denom) THEN Sm:=TRUE
ELSE
Sm:=FALSE;
END;
Symmetry:=Sm;
END;

FUNCTION Zero_Inside(Lng:Byte; Num:LongInt):BOOLEAN;
VAR
i,DD:BYTE;
Nm:LongInt;
ZI:BOOLEAN;
BEGIN
ZI:=TRUE;
Nm:=Num div 10;
i:=0;
REPEAT
INC(i);
DD:=Nm mod 10;
Nm:=Nm div 10;
IF DD>0 THEN ZI:=FALSE;
UNTIL (ZI=FALSE) OR (i=Lng-2);
Zero_Inside:=ZI;
END;

BEGIN
Assign(f, 'beauty.res');
ReWrite(f);
i:=0;
Numb:=4999;
Length:=4;
REPEAT
INC(Numb);
IF (Numb=10000) OR (Numb=100000) OR (Numb=1000000) THEN INC(Length);
IF (Similar_Digits(Length,Numb)) OR (End_Zero(Numb))
OR (Symmetry(Length,Numb)) OR (Zero_Inside(Length,Numb)) THEN
BEGIN
INC(i);
IF i=8 THEN
BEGIN
WriteLn(f, Numb:8);
i:=0;
END ELSE
Write(f, Numb:8);
END;
UNTIL Numb=1000000;
Close(f);
END.
 
Назад
Сверху