Главная страница
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.49 MB
Время: 0.046 c
2-1164910514
kirillrepin
2006-11-30 21:15
2006.12.17
сортировка в ListView в режиме Report по SubItems


2-1164700360
DelphiLexx
2006-11-28 10:52
2006.12.17
DBGridEh и DoubleBuffered


15-1164522579
qwerty199191
2006-11-26 09:29
2006.12.17
Большая нагрузка


2-1164830603
бегинка
2006-11-29 23:03
2006.12.17
делфи и флеш


15-1164564347
SkySpeed
2006-11-26 21:05
2006.12.17
HELP! Где можно скачать венгерско-русский переводчик и наоборот?!