![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Используя все цифры от 1 до 9 по одному разу и операции сложения и вычитания, получить в сумме 100, при условии, что цифры появляются в возрастающем или убывающем порядке.
Например, 123 + 4 - 5 + 67 - 89 = 100, 9 – 8 + 76 – 5 + 4 + 3 + 21 = 100. Напишите полностью код задачи...не могу вообще въехать. спасибо |
|
#2
|
||||
|
||||
|
А при чём тут указатели и динамическая память?
|
|
#3
|
||||
|
||||
|
Оффтоп:
Цитата:
По теме: Не, код пока не знаю, а вот алгоритм примерно такой Цитата:
![]() Последний раз редактировалось Alegun, 05.06.2013 в 00:25. |
|
#4
|
|||
|
|||
|
Как-то так
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Clear();
GenString();
end;
// вычисление строки
function Calc100Sum(S:string):Integer;
var
Temp:Integer;
Op:Char;
I:Integer;
procedure CalcOp;
begin
if Op = '=' then Result:=Temp;
if Op = '-' then Result:=Result - Temp;
if Op = '+' then Result:=Result + Temp;
end;
begin
Result:=0;
Temp:=0;
Op:='=';
for I:= 1 to Length(S) do
begin
case S[i] of
'0'..'9': Temp:=Temp*10 + Ord(S[i])-Ord('0');
'+','-': begin CalcOp(); Temp:=0; Op:=S[i]; end;
end;
end;
CalcOp();
end;
// генерация всевозможных строк
procedure TForm1.GenString();
var
I1,I2,I3,I4,I5,I6,I7,I8:Integer;
S:string;
Sum:Integer;
const
Ops:array[0..2] of string=('','+','-');
begin
for I1:=0 to 2 do
for I2:=0 to 2 do
for I3:=0 to 2 do
for I4:=0 to 2 do
for I5:=0 to 2 do
for I6:=0 to 2 do
for I7:=0 to 2 do
for I8:=0 to 2 do
begin
S:='1'
+ Ops[I1] + '2'
+ Ops[I2] + '3'
+ Ops[I3] + '4'
+ Ops[I4] + '5'
+ Ops[I5] + '6'
+ Ops[I6] + '7'
+ Ops[I7] + '8'
+ Ops[I8] + '9';
Sum := Calc100Sum(S);
if Sum = 100 then
Memo1.Lines.Add(S+' = 100');
end;
end; |
|
#5
|
|||
|
|||
|
GenString(); - ошибка
|
|
#6
|
||||
|
||||
|
Цитата:
Код:
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure GenString;
public
{ Public declarations }
end; |
|
#7
|
|||
|
|||
|
>GenString(); - ошибка
В смысле - Memo1, Button1 - добавь в качестве домашнего упражнения. Если курсор находится в теле реализации функции, то нажав Ctrl+Shift+C? прототип функции появится сам. ![]() |