Schreiben Sie ein vollständiges Programm, um festzustellen, ob die Binärdarstellung einer Zahl palindrom ist oder nicht.
Sample Input
5
Sample Output
YES
Gibt aus, YESob die binäre Darstellung palindrom ist oder NOnicht.
Schreiben Sie ein vollständiges Programm, um festzustellen, ob die Binärdarstellung einer Zahl palindrom ist oder nicht.
Sample Input
5
Sample Output
YES
Gibt aus, YESob die binäre Darstellung palindrom ist oder NOnicht.
Antworten:
n=bin(input())[2:]
print'YNEOS'[n!=n[::-1]::2]
[n!=n[::-1]::2]das?
$><<%w(YES NO)[(n="%b"%$*)<=>n.reverse]
Dank Michael Kohls "% b" erhält% Trick.
C 84 81 74 Zeichen
r;main(v,x){for(scanf("%d",&v),x=v;v;v/=2)r=r*2|v&1;puts(r-x?"NO":"YES");}
Es wird keine Funktion wie String Reverse verwendet.
r<<=1in r*=2, v>>=1in v/=2und {}in ändern ;?
r*=2,r|=v&1-> r=r*2|v&1(-2)
alert((a=(prompt()*1).toString(2))-a.split("").reverse().join("")?"NO":"YES")
Mehr Informationen
prompt()*1 : Schneller Trick, um eine Zeichenfolge in eine Zahl umzuwandeln.
.toString(2) : So konvertieren Sie in Javascript in eine Binärdatei.
a.split("").reverse().join("") : Es gibt keine native Unterstützung für das Umkehren von Zeichenfolgen. Sie müssen daher Zeichenfolgen in Arrays und Arrays in Zeichenfolgen konvertieren.
("[part1]" - "[part 2]")?"YES":"NO": -ist ein Ersatz für !=1 Zeichen zu sparen.
<?=strrev($n=decbin(`cat`))==$n?@YES:@NO;
Prüfung:
php 713.php <<< 5
YES
php 713.php <<< 6
NO
m4anstatt sie catzu speichern. Es gibt auch pgund dd(der einige Bytes in stderr schreibt).
$_=sprintf'%b',shift;
print reverse==$_?YES:NO
Ruby, 43 Zeichen
puts((n="%b"%gets)==n.reverse ? "YES":"NO")
puts (n="%b"%gets)==n.reverse ? :YES: :NO
‘NO…Ü‘#EbÂQè
-5 Bytes dank Adnan.
‘NO…Ü‘#EbÂQè:).
bin()existiert
n=bin(input())[2:]
print'YES'if n==n[::-1]else'NO'
['NO','YES'][n==n[::-1]]
Keine Umkehrung der Zeichenfolge:
print f(split//,sprintf'%b',shift);
sub f{@_<=1?YES:shift!=pop()?NO:f(@_)}
Dieser konstruiert alle Palindrome bis zu 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
Ich wollte es tun, ohne überhaupt Zeichenfolgen zu verwenden.
iterative Lösung, 78 Bytes
for($x=log($n=$argv[1],2);$i<$x&($n>>$i^$n>>$x-$i^1);$i++);echo$i<$x/2?NO:YES;
rekursive Lösung, 113 Bytes
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;
Wenn nes sich um ein binäres Palindrom handelt, ist die obere Hälfte x oder die untere Hälfte ebenfalls ein binäres Palindrom und umgekehrt.
ein Port der exzellenten C-Antwort von fR0DDY , 58 Bytes
for($x=2*$v=$argv[1];$x/=2;$r=$r*2|$x&1);echo$r-$v?NO:YES;
eine binäre Umkehrung. Kolumbus Ei.
Die Anzahl der Bytes setzt die Kodierung nach ISO 8859-1 voraus.
.+
$*
+`(1+)\1
${1}0
01
1
^((.)*?).??((?<-2>.)*$)
$1¶$3
O$^`.(?=.*¶)
^(.*)¶\1
In Unary konvertieren. Wandle das in eine Binärdatei um. Schneiden Sie die Zahl in zwei Hälften und entfernen Sie eine mittlere Ziffer, falls es eine gibt. Kehren Sie die erste Hälfte um. Spiel, wenn beide Hälften gleich sind.
BṚ⁼Bị“YES“NO
Erläuterung:
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).
Vor dem Drucken wird die Python- strFunktion über eine Liste zugeordnet, und die Elemente werden dann verkettet, sodass Sie YESoder sehen NO.
Funktioniert nur mit Systemplattformen (php, neko, cpp usw.). Übernimmt Eingaben über Befehlszeilenargumente.
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 Zeichen
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";