Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Числа [D7]


Silica ©   (2006-05-12 19:11:00) 

Задан массив натуральных чисел М[1,N], упорядоченный по убыванию.
Найти первое натуральное число, не представимое суммой никаких элементов этого массива, при этом сумма может состоять и из одного слагаемого, но каждый элемент массива может входить в нее только один раз.

Помогите, пожалуйста разобраться. Не могу уже.

Вот код, который у меня на данный момент:

procedure TForm2.Button1Click(Sender: TObject);
var
 i, j, vr : integer;
 m: array[0..1024] of integer;
begin
 label1.Caption := '';
 for i := 0 to StringGrid1.ColCount - 1 do begin
   StringGrid1.Cells[i,0] := inttostr(random(99));
   m[i] := strtoint(StringGrid1.Cells[i, 0]);
   if m[1] <> m[i] + m[i+1] then begin
   label1.Caption := inttostr(m[1]);
   end;
 end;
 for i:= 0 to StringGrid1.ColCount - 1 do
 for j:= 0 to StringGrid1.ColCount - 2 do
 begin
   if m[j] < m[j+1] then
   begin
     vr := m[j];
     m[j] := m[j+1];
     m[j+1] := vr;
   end;
 end;

 for i:=0 to StringGrid1.ColCount - 1 do
   StringGrid1.Cells[i,0] := inttostr(m[i]);
end;

Еще я пробовала через
for for i := 0 to StringGrid1.ColCount - 2 do
if stringgrid1.cells[i,0] <> stringgrid1.cells[i+1,0] + stringgrid1.cells[i+2,0] then ...

Не получается. :(


MBo   (2006-05-12 20:40:00) [1]

P.S.
Направление цикла здесь использовано для массива, упорядоченного по неубыванию e.g. (1,2,2,7)


MBo   (2006-05-12 20:36:00) [2]


function MinBad(Data: array of Integer): Integer;
var
 i: Integer;
begin
 Result := 1;
 for i := 0 to High(Data) do
   if Data[i] <= Result then
     Inc(Result, Data[i])
   else
     Exit
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо