Другие языки программирования и технологии

Паскаль составте програмку!!!!

Дана последовательность натуральных чисел {Aj}j=1...n (n<=10000). Удалить из последовательности числа, содержащие цифру 9, а среди оставшихся продублировать числа, содержащие хотя бы пару одинаковых цифр.
Доброго времени суток.

Можно так попробовать. Сначала пишем функцию для проверки числа. Пусть она будет возвращать 1, если в числе есть цифра 9 и 2, если есть две одинаковые цифры. Правда, из условия не совсем понятно, что делать, если парой одинаковых цифр будут девятки или одинаковых цифр будет больше двух.

function TstNum(N: Integer): Integer;
var
Arr[0..9] of Byte;
j : Integer;
begin
TstNum := 0;
FillChar(Arr, SizeOf(Arr), 0); {обнуляем массив счетчиков}
while N > 0 do begin
Inc(Arr[N mod 10]); {увеличиваем счетчик количества соотв. цифр}
N := N div 10;
end;
{элементы массива Arr содержат число цифр, равных индексам}
if Arr[9] > 0 then begin {есть 9}
TstNum := 1;
Exit;
end;
for j:=0 to 9 do
if Arr[j] = 2 then begin
TstNum := 2;
Break;
end;
end;

А дальше в программе

k := 0;
for j:=1 to n do begin
case TstNum(A[j]) of
0 : begin k := k + 1; B[k] := A[j]; {копируем элемент}
1 : ; {пропускаем элемент}
2 : begin k := k + 1; B[k] := A[j]; k := k + 1; B[k] := A[j]; end; {дублируем элемент}
end;
end;

В массиве В новая последовательность, ее размероность в переменной k.

Все остальное, самостоятельно.

Удачи!
Нуралы Бимашев
Нуралы Бимашев
59 612
Лучший ответ
что, юзерЪ, решить не можеш? как критиковать ОС Линух ты можеш а сделать элементарное нет. Так что сключи свое г.... и думай теперь что к чему -) Щасливо оставаться лол, а за пингвина пасть бы тебе порвал -)
ААААААаааа что в школе впадлу учиться сиди и напрягай свои гнилые извилины!!! !