Расстоянием между двоичными кодами называется количество несовпадающих двоичных разрядов. Например: 0101101 0010101 р=3 ----------- *** Составить функцию Ro (N1,N2), вычисляющую расстояние между двоичными представлениями её целочисленных аргументов N1 N2
Добавлено через 1 мин. желательно написать самый рациональный алгоритм (язык Delphi консольное приложение)
мне если можно то побыстрее) завтра уже сдавать(((
Ну, знаешь, это как-то не наши проблемы. Сам дотянул, а теперь тебе срочно надо... Ну, надо - так разбирайся:
program diff;
{$APPTYPE CONSOLE} uses SysUtils;
const size = 32; type TIntarr=array[1 .. size] of integer;
Function Ras(n1, n2: integer): integer;
function Perevod(n: integer): TIntarr; var i: integer; begin FillChar(result, sizeof(Tintarr), 0); i := 0; while n <> 0 do begin inc(i); result[i] := n mod 2; n := n div 2; end; // все остальное - выброшено, потому что не важен порядок чисел, // если A1 будет "перевернут", то и A2 - тоже, а значит, все будет работать end;
var a1, a2: TIntarr; i: integer; begin result := 0; a1 := Perevod(n1); a2 := Perevod(n2); for i := 1 to size do if a1[i] <> a2[i] then result := result + 1; end;
var n1, n2: integer;
begin Writeln ('vvedi chisla'); Readln(n1, n2); Writeln(ras(n1,n2)); Readln; end.