Форум: "Начинающим";
Текущий архив: 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.083 c