Scrivi un programma completo per scoprire se la rappresentazione binaria di un numero è palindromo o no?
Sample Input
5
Sample Output
YES
Stampa YESse la rappresentazione binaria è palindromo e NOnon.
Scrivi un programma completo per scoprire se la rappresentazione binaria di un numero è palindromo o no?
Sample Input
5
Sample Output
YES
Stampa YESse la rappresentazione binaria è palindromo e NOnon.
Risposte:
n=bin(input())[2:]
print'YNEOS'[n!=n[::-1]::2]
[n!=n[::-1]::2]?
$><<%w(YES NO)[(n="%b"%$*)<=>n.reverse]
Grazie a "% b"% di Michael Kohl il trucco si fa.
C 84 81 74 personaggi
r;main(v,x){for(scanf("%d",&v),x=v;v;v/=2)r=r*2|v&1;puts(r-x?"NO":"YES");}
Non utilizza alcuna funzione come l'inverso della stringa.
r*=2,r|=v&1-> r=r*2|v&1(-2)
alert((a=(prompt()*1).toString(2))-a.split("").reverse().join("")?"NO":"YES")
Maggiori informazioni
prompt()*1 : Trucco rapido per convertire la stringa in numero.
.toString(2) : Ecco come convertire in binario in javascript.
a.split("").reverse().join("") : Non esiste alcun supporto nativo per invertire la stringa, quindi è necessario convertire la stringa in array e array in string.
("[part1]" - "[part 2]")?"YES":"NO": -è un sostituto per !=salvare 1 carattere.
<?=strrev($n=decbin(`cat`))==$n?@YES:@NO;
Test:
php 713.php <<< 5
YES
php 713.php <<< 6
NO
m4invece di catsalvarne uno. C'è anche pge dd(che scrive alcuni byte su stderr).
$_=sprintf'%b',shift;
print reverse==$_?YES:NO
Rubino, 43 caratteri
puts((n="%b"%gets)==n.reverse ? "YES":"NO")
puts (n="%b"%gets)==n.reverse ? :YES: :NO
‘NO…Ü‘#EbÂQè:).
bin()esistesse la funzione
n=bin(input())[2:]
print'YES'if n==n[::-1]else'NO'
['NO','YES'][n==n[::-1]]
Nessuna stringa inversa:
print f(split//,sprintf'%b',shift);
sub f{@_<=1?YES:shift!=pop()?NO:f(@_)}
Questo costruisce tutti i palindromi fino a 2 ^ 32.
sub f{
my($x,$l)=@_;
$l+=2,f(($x<<$_)+1+(1<<$l-1),$l)?return 1:0 for 1..15-$l/2;
$x-$ARGV[0]?0:1
}
print f(0,1)+f(0,0)+f(1,1)?YES:NO
13 : ';(]-:|.)#:y{''YES'';''NO'''
0?k=n;n?k=div n 2?(n`mod`2+k*2);f x|x==x?0="YES"|True="No";main=interact$f.read
Volevo farlo senza usare affatto le stringhe.
soluzione iterativa, 78 byte
for($x=log($n=$argv[1],2);$i<$x&($n>>$i^$n>>$x-$i^1);$i++);echo$i<$x/2?NO:YES;
soluzione ricorsiva, 113 byte
function p($n,$x=0){return$n<2?$n:is_pal(($n&(1<<$x=log($n,2)/2)-1)^$n>>$x+!is_int($x));}echo p($argv[1])?YES:NO;
Se nè un palindromo binario, la metà superiore xo la metà inferiore è anche un palindromo binario e viceversa.
una porta della risposta C eccellente da fR0DDY , 58 byte
for($x=2*$v=$argv[1];$x/=2;$r=$r*2|$x&1);echo$r-$v?NO:YES;
un rovescio binario. Uovo di Colombo.
Il conteggio dei byte presuppone la codifica ISO 8859-1.
.+
$*
+`(1+)\1
${1}0
01
1
^((.)*?).??((?<-2>.)*$)
$1¶$3
O$^`.(?=.*¶)
^(.*)¶\1
Converti in unario. Converti quello in binario. Taglia il numero a metà e rimuovi una cifra centrale se ce n'è una. Invertire la prima metà. Abbina se entrambe le metà sono uguali.
BṚ⁼Bị“YES“NO
Spiegazione:
BṚ⁼Bị“YES“NO Main link. Arguments: z.
B Binary representation of z.
Ṛ Reversed.
B Binary representation of z.
⁼ Check if x is equal to y.
“YES“NO [['Y', 'E', 'S'], ['N', 'O']]
ị xth element of y (1-indexed).
Prima di stampare, la strfunzione di Python viene mappata attraverso un elenco, quindi gli elementi vengono concatenati, in modo da vedere YESo NO.
Funziona solo con piattaforme di sistema (php, neko, cpp, ecc.). Accetta input tramite argomenti della riga di comando.
class T{static function main(){var r:Dynamic=Std.parseInt(Sys.args()[0]);var s=r.toString(2);trace(s==[for(i in-s.length+1...1)s.charAt(-i)].join('')?"YES":"NO");}}
function paly(n)
v=de2bi(n);
if v==v(numel(v):-1:1)
'YES'
else
'NO'
end
Java, 97 85 caratteri
return Integer.toBinaryString(i).equals(new StringBuffer(s).reverse()+"")?"YES":"NO";
String s = Integer.toBinaryString (i); return s.equals (new StringBuffer (s) .reverse () + "")? "YES": "NO";