Показать сообщение отдельно

  #3  
Старый 20.01.2009, 07:58
Trieg
Познающий
Регистрация: 26.10.2007
Сообщений: 83
С нами: 9758702

Репутация: 50
По умолчанию

PHP код:

$n 
= 271;
$tempN = decbin($n);
//Ищем первую 1 и оставляем в строке усе что после первой единицы
$tempN = substr($tempN, strpos($tempN, '1') + 1);
//Чистим строку от нулей которые идут до первой единицы (их может и не быть..)
$tempN = substr($tempN, strpos($tempN, '1'));
$res = bindec($tempN.'1'); // Вот что искали..
echo 'Номер уцелевшего:'.$res; 
Сам я в подобном не шарю.. в общем залез в гугл нашел алгоритм решения и реализовал его на пыхе (может и корявенько.. но на более у меня нет времени)

1) число n перевести в двоичную систему;

2) в полученном двоичном числе первую слева единицу приписать в конце

3) перевести получившееся число в десятичную систему счисления.
 
Ответить с цитированием