Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Логические выражения   Найти похожие ветки 

 
keymaster ©   (2005-12-16 22:03) [0]

Как известно (1 and 1) = 1
но и (3 and 1) = 1
а надо чтобы только единица ловились.

Вся задача звучит примерно так:
есть массив целых чисел, хаотично заполненный числами "1,2,3,4"
Надо посчитать количество единиц, двоек, троек, четвёрок.
Нельзя юзать IF, CASE, While, доп массивы и т.д.
Цикл должен быть один - тот в котором идёт перебор элементов.


 
DrPass ©   (2005-12-16 22:06) [1]

xor


 
TUser ©   (2005-12-16 22:15) [2]

Расшифрую
for i:=0 to length-1 do
count += integer((NeedNumber xor RealNumber) == 0)


 
Uncle Archi ©   (2005-12-16 22:35) [3]

keymaster ©   (16.12.05 22:03)
1 xor 1 = 0
1 xor 2 = 3
1 xor 3 = 2
1 xor 4 = 5


 
Alexander Panov ©   (2005-12-16 22:48) [4]

var
 ArrInt,ArrCounter: array of Integer;
 i: Integer;
 s: String;
begin
 SetLength(ArrInt,4);
 SetLength(ArrCounter,4);
 ArrInt[0] := 1;
 ArrInt[1] := 2;
 ArrInt[2] := 2;
 ArrInt[3] := 3;

 for i := 0 to High(ArrInt) do
 begin
   ArrCounter[ArrInt[i]-1] := ArrCounter[ArrInt[i]-1] + 1;
 end;
 s := "";
 for i := 0 to High(ArrCounter) do
 begin
   s := s + "Eiee?anoai("+IntToStr(i+1)+")"+IntToStr(ArrCounter[i])+#13#10;
 end;
 ShowMessage(s);


 
SergP ©   (2005-12-16 23:11) [5]


> Надо посчитать количество единиц, двоек, троек, четвёрок.


var
S:cardinal;
...
for i:=0 to high(arr) do S:=S+(1 shl (8*arr[i]));

Кол-во каждого из чисел будет в соответствующем быйте


 
SergP ©   (2005-12-16 23:12) [6]


> Надо посчитать количество единиц, двоек, троек, четвёрок.


var
S:cardinal;
...
for i:=low(arr) to high(arr) do S:=S+(1 shl (8*arr[i]));

Кол-во каждого из чисел будет в соответствующем быйте


 
SergP ©   (2005-12-16 23:20) [7]


> Alexander Panov ©   (16.12.05 22:48) [4]



> Нельзя юзать IF, CASE, While, доп массивы и т.д.


 
SergP ©   (2005-12-16 23:23) [8]


> for i:=low(arr) to high(arr) do S:=S+(1 shl (8*arr[i]));


for i:=low(arr) to high(arr) do S:=S+(1 shl (8*(arr[i]-1)));


 
Игорь Шевченко ©   (2005-12-16 23:24) [9]

SergP ©   (16.12.05 23:23) [8]

S := 0 в начале



Страницы: 1 вся ветка

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
10-1111376309
msgipss
2005-03-21 06:38
2006.01.15
локальная служба и локальный сервер в dcomcnfg - что это значит?


5-1120978357
Серджио_Точини
2005-07-10 10:52
2006.01.15
Создание компонента для ввода двоичных чисел с фикс. запятой


10-1110887923
Eleonore
2005-03-15 14:58
2006.01.15
Формулы Excel в Delphi


14-1134742530
Kerk
2005-12-16 17:15
2006.01.15
Архитектура Google


2-1135509190
SergProger
2005-12-25 14:13
2006.01.15
Копирование файлов с сервера