[PHP] – Desafio: Trocar valores de duas variáveis!



Boa tarde galera, hoje vou lançar um desafio básico em php aqui no blog pra galera resolver.

O desafio é bem simples, você só precisa trocar o valor de duas variáveis de forma que uma receba o valor anterior da outra, mas sem usar uma variável auxiliar.

Temos os valores 10 e 100 para as variáveis $a e $b respectivamente:

$a = 10;
$b = 100;

O resultado tem que ser:

$a = 100;
$b = 10;

Resolva e poste o resultado. Good Luck!

, ,

  1. #1 por Bruno - 26 de outubro de 2009 em 18:04

    $a = $b;
    $b = 10;
    =D

  2. #2 por Marcel - 26 de outubro de 2009 em 18:10

    Xor-Assignment! :D
    <?php
    $a=10;
    $b=100;
    echo "Antes: ".$a." – ".$b."”;
    $a ^= $b;
    $b ^= $a;
    $a ^= $b;
    echo “Depois: “.$a.” – “.$b.”";
    ?>

    Parabéns pelo conteúdo do blog!

    Abraço.

  3. #3 por Alberis Fernandes - 26 de outubro de 2009 em 18:14

    Simples:

    $b = $a;
    $a = $a * $a;

  4. #4 por Kynho - 26 de outubro de 2009 em 18:19

    Antes de mais nada parabéns pelo blog cara.

    Minha proposta para o problema seria usar XOR-Assignment:

    echo $a = $a ^= $b ^=$a;
    echo $b = $a ^= $b;

    Resultado:

    $a = 100;
    $b = 10;

    Abraço

  5. #5 por Chris Benseler - 26 de outubro de 2009 em 18:23

    Ah, mas esse nem é relativo a PHP, é lógica de programação…

    a = a + b
    b = b – a
    b = – b
    a = a – b

    Acho que é isso :)

  6. #6 por Jaydson Gomes - 26 de outubro de 2009 em 18:23

    $a = $b +$a;
    $b = $a – $b;
    $a = $a – $b;

    Boa Danilo! Forçar a cabeça da galera é sempre massa.
    Bom, não testei, mas este código acima deve funcionar.

  7. #7 por villas - 26 de outubro de 2009 em 19:34

    $a = 10;
    $b = 100;
    $input = array($a,$b);
    $a = $input[1];
    $b = $input[0];
    echo $a , ‘ e ‘ , $b;

  8. #8 por villas - 26 de outubro de 2009 em 19:37

    list($a, $b) = array($b, $a);

    matei

  9. #9 por Chris Benseler - 26 de outubro de 2009 em 20:14

    A solução do Villas é a mais bacana! hehe

  10. #10 por villas - 26 de outubro de 2009 em 20:52

    menos código e sem variáveis auxiliares

  11. #11 por Danilo - 26 de outubro de 2009 em 20:54

    Com certeza, esse era o resultado que esperava, e ainda matou tudo em uma linha…
    Abraço, Valeu!!

  12. #12 por Edinei - 27 de outubro de 2009 em 21:59

    Para o seu caso de entrada, esse algoritimo retorna sua saída.

    $a=10;
    echo “B: “,$b=pow($a,2),” A: “,$a;

  13. #13 por fernando softov - 28 de outubro de 2009 em 16:56

    $$a = $b;
    $b = $a;
    $a = $$a;

  14. #14 por Flávio - 25 de novembro de 2009 em 23:01

    Nem conhecia alguns desse metodos

    Parabéns Galera:

(não será publicado)
  1. Sem citações ainda.