Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.17;
Скачать: CL | DM;

Вниз

Число   Найти похожие ветки 

 
flock   (2006-11-19 22:28) [0]

Необходимо из данного числа составить два числа, сумма которых должна равняться данному числу. Т.е дано 10, найденные два числа это например 8 и 2; или 6 и 4 и т.п. Как такое грамотнее всего осуществить?

Самый тупой, мой способ -- это вот в лоб:

 need := 10;
 while true do
 begin
   t1 := Random(need - 1); t2 := Random(need - 1);
   if t1 + t2 = need then
   begin
     ShowMessage(Format("%d, %d", [t1, t2]));
     Break;
   end;
 end;

Я думаю, что это не самый оптимальный вариант.


 
Орион ©   (2006-11-19 22:31) [1]

> [0] flock   (19.11.06 22:28)
> Я думаю, что это не самый оптимальный вариант.

ты прав. это даже не вариант - это сам Деструктор не знает что.


 
KilkennyCat ©   (2006-11-19 22:37) [2]

var
 a, b, c : byte;
begin
 a := 10; // данное число
 b := 1;// меньше единицы только ноль, что пофиг. это первое число.
 с := a - b; //находим второе число.
енд.


 
RASkov   (2006-11-20 00:24) [3]

Все же наверное так лучше будет:)
var
a, b, c : byte;
begin
a := 10;          // данное число
b := Random(a+1); // меньше единицы только ноль, что пофиг. это первое число.
с := a - b;       //находим второе число.
енд.


 
RASkov   (2006-11-20 00:26) [4]

b := Random(a+1); // случайное число входящее в заданное. это первое число.


 
Орион ©   (2006-11-20 00:40) [5]

хы-хы)) в тему [0] поста:

Программистский шедевр на индусском форуме на тему "как узнать завтрашнюю дату" остался непревзойденным:

void get_tomorrow_date( struct timeval date )
{
sleep( 86400 ); // 60 * 60 * 24

gettimeofday( date, 0 );
}


 
DrPass ©   (2006-11-20 00:47) [6]


> Орион ©   (20.11.06 00:40) [5]

увы, он немного неправильный


 
Орион ©   (2006-11-20 00:49) [7]

> [6] DrPass ©   (20.11.06 00:47)

я цитировал :)


 
Anatoly Podgoretsky ©   (2006-11-20 01:06) [8]

> RASkov  (20.11.2006 0:26:04)  [4]

Данное число не входящее в заданое


 
Германн ©   (2006-11-20 01:21) [9]


> Anatoly Podgoretsky ©   (20.11.06 01:06) [8]
>
> > RASkov  (20.11.2006 0:26:04)  [4]
>
> Данное число не входящее в заданое
>

RASkov опять поспешил :-) А потом "поспешил исправиться" :-)


 
KilkennyCat ©   (2006-11-20 01:27) [10]

> [4] RASkov   (20.11.06 00:26)

я надеялся, что до этого догадается автор :)


 
Германн ©   (2006-11-20 01:37) [11]


> KilkennyCat ©   (20.11.06 01:27) [10]
>
> > [4] RASkov   (20.11.06 00:26)
>
> я надеялся, что до этого догадается автор :)
>

Автор задал вопрос и замолчал. Теперь обсуждаем ответчиков и их "ляпы". :-)


 
Думкин ©   (2006-11-20 06:43) [12]

Со сложением совсем просто. А с умножением нацело?


 
ASoft   (2006-11-20 08:01) [13]


> flock   (19.11.06 22:28)

если не нужно приводить все варианты суммы, к примеру для 10:
1+9, 2+8 и т.п. то можно и так:
Var a,b,c: integer;
begin
a:=10;
b:=a div 2;
c:=a-b;
Label1.Caption:=Format("%d, %d", [b, c]);
end;
:)
у
> RASkov   (20.11.06 00:24) [3]

пример мне более понравился ;)


 
RASkov   (2006-11-28 08:27) [14]

> [12] Думкин ©   (20.11.06 06:43)

var a,b,c,n: byte;
begin
 a:=50+Random(205);
 b:=Random(a);
 for n:=b downto 1 do begin
  if (a mod n)=0 then begin
   b:=a div n;
   c:=n;
   break;
  end;
 end;
 ShowMessage(IntToStr(a)+" - "+IntToStr(b)+" - "+IntToStr(c)+" - "+IntToStr(b*c));
end;

:)



Страницы: 1 вся ветка

Текущий архив: 2006.12.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.048 c
2-1165065417
dasha
2006-12-02 16:16
2006.12.17
DBGrid и поля с типом MEMO


3-1160304756
Sanya_BBB
2006-10-08 14:52
2006.12.17
Как сделать выборку из таблицы без учета регистра букв


2-1164688018
Syrym
2006-11-28 07:26
2006.12.17
что то связано с распечатко вложенной таблицы


3-1160293193
AntiUser
2006-10-08 11:39
2006.12.17
В тригере Before Update узнать имя измененного field а


3-1160295880
Павел Калугин
2006-10-08 12:24
2006.12.17
Несколько вопросов по Ораклу