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

Вниз

Количество отрицтельных чисел   Найти похожие ветки 

 
Professor   (2008-03-29 15:07) [0]

тут одна простенькая задача накануне поставила меня в тупик.. чувствую что на элементарщине попался..

Дано 3 числа, найти количество отрицательных чисел, использую 2 оператора условия.

PS битовыми операциями пользоваться нельзя.


 
Alien1769 ©   (2008-03-29 15:48) [1]

Комбинации из трех чисел.


 
Palladin ©   (2008-03-29 16:00) [2]

Задача не имеет решения. Вариантов решения 4,  но условных сравнений 2. Это означает всего лишь 3 варианта ветвлений.

Вот если ввести условие, что есть хотя бы одно отрицательно то все просто.


 
vrem_   (2008-03-29 16:12) [3]

складывать можно?


 
Professor   (2008-03-29 16:15) [4]

думаю можно

> Вот если ввести условие, что есть хотя бы одно отрицательно
> то все просто.

про доп. условия ничего не говорили (


 
Palladin ©   (2008-03-29 16:21) [5]


> Professor   (29.03.08 16:15) [4]


тогда решения нет. нужно минимум 3 условия. тогда тоже все просто.


> vrem_   (29.03.08 16:12) [3]

:) можно, хоть до потери пульса


 
Andy BitOff ©   (2008-03-29 16:25) [6]


> Palladin ©

Но ведь он говорит "отрицательных чисел, использую 2 оператора условия." и на опечатку не похоже, т.к. ю и я в разных сторонах клавиатуры. А если использует ОН, то это его проблемы ;)


 
evvcom ©   (2008-03-29 16:30) [7]

select sum(case when value < 0 then 1 else 0) from MyTable
Один оператор условия! :-)))


 
guav ©   (2008-03-29 16:39) [8]

> 2 оператора условия

А что это ?
если это ифы, то можно.

count := 0;
if (a1 < 0) and (a2 < 0) or
  (a1 < 0) and (a3 < 0) or
  (a2 < 0) and (a3 < 0) then
 Inc(count, 2);
if (count = 2) and (a1 < 0) and (a2 < 0) and (a3 < 0) or
  (count = 0) and ((a1 < 0) or (a2 < 0) or (a3 < 0)) then
 Inc(count, 1);

а ещё можно без ифов вообще - переводить boolean в число через ord, использовать case или операторы цикла.


 
Professor   (2008-03-29 16:58) [9]


> Andy BitOff ©   (29.03.08 16:25) [6]

это не более, чем опечатка.


> guav ©   (29.03.08 16:39) [8]

о! благодарю, по-моему то что надо )


 
vrem_   (2008-03-29 17:02) [10]

ну как это то что надо?
условие это когда один раз сравнивают, а там посмотри - больше чем один раз!


 
Professor   (2008-03-29 17:04) [11]


> vrem_   (29.03.08 17:02) [10]


> условие это когда один раз сравнивают


> Professor   (29.03.08 15:07) 


>  использую 2 оператора условия.


 
Palladin ©   (2008-03-29 17:19) [12]


> Professor   (29.03.08 17:04) [11]

млин, лучше бы ты просто написал "два if"а"... лично я воспринял как два сравнения....


 
Andy BitOff ©   (2008-03-29 17:22) [13]


> Professor   (29.03.08 17:04) [11]

vrem_ имел в виду, что внутри первого ифа, в коде guav"а, ведется проверка по 11 условиям.


 
Palladin ©   (2008-03-29 17:36) [14]


> Professor   (29.03.08 17:04) [11]

млин, лучше бы ты просто написал "два if"а"... лично я воспринял как два сравнения....


 
Palladin ©   (2008-03-29 17:41) [15]

прошу прощения за дубль... IE mobile блин...


> Andy BitOff ©   (29.03.08 17:22) [13]

да условий понятно много... а вот условных оператора только два... задачка старая, олимпиадная...


 
Alien1769 ©   (2008-03-29 17:54) [16]


> guav ©   (29.03.08 16:39) [8]

+1
Вот про какие комбинации я говорил в 1 посте,
возможно не внятно написал...


 
builder   (2008-03-29 19:27) [17]


> а ещё можно без ифов вообще - переводить boolean в число
> через ord, использовать case или операторы цикла.


плохо


 
GrayFace ©   (2008-03-30 04:01) [18]

count:= (sgn(a1)-1) div (-2) + (sgn(a2)-1) div (-2) + (sgn(a2)-1) div (-2);


 
J_f_S ©   (2008-03-30 04:13) [19]

iCount = a >> 31 + b >> 31 + c >> 31;

:)


 
J_f_S ©   (2008-03-30 04:17) [20]

Убить :) Пропустил про битовые операции.



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

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

Наверх




Память: 0.51 MB
Время: 0.021 c
2-1208237932
John_Korsh
2008-04-15 09:38
2008.05.11
Доступ к портам под XP.


15-1206194398
TUser
2008-03-22 16:59
2008.05.11
В чипсет


2-1207725582
Footballer
2008-04-09 11:19
2008.05.11
UDP


2-1208264686
assassin8899
2008-04-15 17:04
2008.05.11
Словарь


15-1206673504
borisich
2008-03-28 06:05
2008.05.11
нужно ли идти в армию...