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 por Bruno - 26 de outubro de 2009 em 18:04
$a = $b;
$b = 10;
=D
#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 por Alberis Fernandes - 26 de outubro de 2009 em 18:14
Simples:
$b = $a;
$a = $a * $a;
#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 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 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 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 por villas - 26 de outubro de 2009 em 19:37
list($a, $b) = array($b, $a);
matei
#9 por Chris Benseler - 26 de outubro de 2009 em 20:14
A solução do Villas é a mais bacana! hehe
#10 por villas - 26 de outubro de 2009 em 20:52
menos código e sem variáveis auxiliares
#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 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 por fernando softov - 28 de outubro de 2009 em 16:56
$$a = $b;
$b = $a;
$a = $$a;
#14 por Flávio - 25 de novembro de 2009 em 23:01
Nem conhecia alguns desse metodos
Parabéns Galera: