Guest
Новичок
|
Помогите. Вот такая задача(в ДЕлфи): Надо умножить два числа (a*b) используя при этом лишь операции +,-,>,<,=. Естественно можно просто сложить а в цикле b раз, но это слишком неэффективно. Как еще это можно сделать?
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 29 мая 2004 19:58 | IP
|
|
BeaST
Удален
|
var i,k,R:integer; M,N:array[1..32]of integer; begin i:=1;k:=1;R:=0; while(k<=b) begin M:=a; N:=k; k:=k+k; i:=i+1; a:=a+a end; while(b>0) begin i:=i-1; k:=N; a:=M; if(b>=a) begin R:=R+a;b:=b-a end end М-даа.. после всего думается что лучше было бы простым циклом. PS: используя div и mod получилось бы быстрее
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 3 июня 2004 23:02 | IP
|
|
|