Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.042 c
15-1164569116
Piter
2006-11-26 22:25
2006.12.17
Забавный глюк миранды


8-1146694208
h8394E
2006-05-04 02:10
2006.12.17
Сдвиг Red канала на X, Y пикселей


15-1164232592
Горгер
2006-11-23 00:56
2006.12.17
Книги, которые пишут женщины, могут читать только женщины


2-1164902642
Гарри Поттер
2006-11-30 19:04
2006.12.17
Как в TabbedNotebook спрятать вкладку?


15-1164606305
Тульский
2006-11-27 08:45
2006.12.17
Кидалово с жильем





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский