SamForum.org  
SamLab.ws
Заблокированные пользователи

Вернуться   SamForum.org > Программирование > Pascal и Delphi
Важная информация

Закрытая тема
 
Опции темы Опции просмотра
Помогите пожалуйста!!! Очень нужна помощь!!!
Старый Добавлено: 30.10.2007, 18:06
  (#1)
stepanovegor
Гость
 
Аватар для stepanovegor

По умолчанию Помогите пожалуйста!!! Очень нужна помощь!!!

Привет народ, пожалуйста помогите чем кто может... Помогите пожалуйста решить задачки на Делфи
Привет всем...Народ помогите решить 3 задачки...Они простые, но вот только кроме VB6 я ничего не знаю...А задачки надо решить либо на Delphi либо на Паскале либо на СИ...помогите ребята, кто чем может...

Задача В
Имя входного файла: b.in
Имя выходного файла: b.out
Максимальное время работы на одном тесте: 1000 миллисекунд
Максимальный объем используемой памяти: 4096 килобайт
Незнайка записал натуральное десятичное число. Сможет ли Знайка переставить некоторые цифры местами и прибавить получившееся натуральное число (не начинающееся с нуля) к исходному так, чтобы сумма содержала только цифры "9"?
Формат входных данных
Данное число (не более 2001 знаков).
Формат выходных данных
Число -1 или число с переставленными цифрами.

Задача С. Таблица
Имя входного файла: c.in
Имя выходного файла: c.out
Максимальное время работы на одном тесте: 1000 миллисекунд
Максимальный объем используемой памяти: 4096 килобайт
Незнайка записал в таблицу N*N клеток целые числа от 1 до N (каждое - по N раз). Знайка хочет узнать, сколько среди чисел от 1 до N встречается в каждой строке ровно по одному разу.
Формат входных данных
В первой строке - число N (не больше 100), в следующих N строках - таблица, записанная Незнайкой.
Формат выходных данных
Количество чисел, встречающихся в каждой строке по одному разу.

Помогите плиз.....
Вверх
Ответить с цитированием
Старый Добавлено: 03.11.2007, 19:21
  (#2)
AnriRS
Наблюдающий
Пользователь
 
Аватар для AnriRS

По умолчанию

задача C где-то так (делфю запускать влом, но идея такая):

function Split(const AText: string; const AList: TStringList): integer;
var
bIsQuoted, bIsSeparator: boolean;
s, t: string;
i: integer;
begin
s:= TrimRight(AText);
i:= Length(s);
s:= TrimLeft(s);
result:= i-Length(s);
bIsQuoted:= false;
bIsSeparator:= false;
AList.BeginUpdate;
AList.Clear;
for i:=1 to Length(s) do
begin
case s[i] of
'"':
begin
bIsQuoted:= not bIsQuoted;
bIsSeparator:= false;
end;
' ', #9:
if bIsQuoted then t:= t+s[i]
else
if not bIsSeparator then
begin
bIsSeparator:= true;
AList.Add(t);
t:= '';
end;
else
begin
bIsSeparator:= false;
t:= t+s[i]
end
end
end;
AList.Add(t);
AList.EndUpdate;
end;


procedure Main;
var
i, o, x: TStringList;
acol, arow: integer;
t, c: array og integer;
r, n: integer;

begin
i:= TStringList.Create;
i.LoadFromFile('b.in');
o:= TStringList.Create;
x:= TStringList.Create;

n:= strtoint(i[0]);
setlength(t, n); // массив под строку;
setlength(c, n); // массив по счетчики;

for arow:= 0 to n-1 do
begin
Split(i[arow], x); // режем строку на числа, разделитель пробел(ы)
for acol:= 0 to n-1 do begin c[acol]:= 0; n[acol]:= strtoint(x[acol]) end; // читаем строку
for acol:= 0 to n-1 do inc(c[n[acol]]); // считаем число повторений числа в строке
r:= 0; // кол-во чисел с однократным вхождением в строке
for acol:= 0 to n-1 do
if c[acol]=1 then inc(r)
o.AddStrring(inttostr(r)
end;
o.SaveToFile('b.out');
x.Free;
o.Free;
i.Free
end

Задача B тоже, в принципе, тривиальная. Писать влом, алгоритм такой:
- читаем число с строку,
- если начинается с 9, то ответ не существует (т.к. начинается с 0)
- создаем массив счетчиков [0..9]
- проходим вдоль числа, считаем сколько каждая из цифр входит в число;
- если перестановка существует, то кол-во цифр 0 и 9, 1 и 8, 2 и 7, 3 и 6, 4 и 5 должно быть равным между собой
- если не равно, то результат -1
- если равно, то генерим число - проходим вдоль исходного и считаем 9-a[i]

Последний раз редактировалось AnriRS; 03.11.2007 в 19:34..
AnriRS вне форума Отправить личное сообщение для AnriRS
Вверх
Ответить с цитированием
Закрытая тема

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.10
Copyright ©2000 - 2020, vBulletin Solutions, Inc. Перевод: zCarot

Время генерации страницы 0.06369 секунды с 12 запросами