Очередная задачка

N3K

Новичок
Очередная задачка

Вот вспомнил задачку, решал когда учился ещё, вот только на другом языке... Её по идее есть несколько способов решения, но есть над чем подумать:
Отсортируйте массив методом пузырька, не используя операторы '<' и '>' (больше и меньше), не используя функций пхп.
 

Армян

Новичок
HraKK
Вычитание даст число, а как его проверить больше нуля оно или нет ? Я чтото не соображу :)
 

DiMA

php.spb.ru
Команда форума
function compare($a, $b) {
$c=$a-$b;
return $c==abs($c);
}

и заменить каждое $a>$b на функцию
 

DiMA

php.spb.ru
Команда форума
емое, функции... =)

-~{}~ 19.12.08 19:10:

function compare($a, $b) {
return ($a-$b)>>50===0;
}
 

Армян

Новичок
PHP:
function compare($a, $b) {
    $c=$a-$b;
    if ( ($c % 2 == -1) or (($c +1) % 2 == -1) ) {
      return true;
    }else{
      return false;
    }
  }
идея думаю понятна ) не тестил, но вроде работоспособно

пс. проверил, работает О_о
 

HraKK

Мудак
Команда форума
PHP:
<?php
$a =-2000;
$b =1000;
function  compare($a,$b )
{
    if( strpos($a,'-') === 0 && strpos($b,'-') !==0 )
    {
        return 0;
    }
    elseif ( strpos($a,'-') !== 0 && strpos($b,'-') ===0 )
    {
        return 1;
    }
    $d =  abs($a) /abs($b);
    if( strpos($d,'0')=== 0)
    {
        if ( strpos($a,'-') === 0 )
        {
            return 1;
        }
        else 
        {
            return 0;
        }
    }
    else
    {
        if ( strpos($a,'-') === 0 )
        {
            return 0;
        }
        else 
        {
            return 1;
        }
    }
}
var_dump(compare($a,$b));
 

fixxxer

К.О.
Партнер клуба
$negmask = 1 << (PHP_INT_SIZE * 8 - 1);
(($b - $a) & $negmask) == $negmask

позвольте остальное не писать)

-~{}~ 19.12.08 19:18:

DiMA
а у меня 64 бита ;)
 

zerkms

TDD infected
Команда форума
в чём вообще смысл задач с условиями "не используя"?
после этого что пойдёт - напишите скрипт, не используя рук? или сидя в рукавичках??
 

Армян

Новичок
zerkms
Интерес, разминка для мозга. Это почти как когда начинающий программер знает как сортировать массив с помощью sort, а вручную циклом не сможет :)
 

HraKK

Мудак
Команда форума
Армян
стрпос и абс в моей функции не нужны можешь их заменить на []
 

Активист

Активист
Команда форума
Если учесть, что нет отрицательных чисел, то можно использовать

PHP:
$a = 3;
$b = 2;
echo (($a/$b) === 1) ? "a = b" : ((int)($a/$b) == 0 ? "a < b" : "a > b");

Как же сам TC Решил задачу?
 
Сверху