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, YES
ob die binäre Darstellung palindrom ist oder NO
nicht.
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, YES
ob die binäre Darstellung palindrom ist oder NO
nicht.
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<<=1
in r*=2
, v>>=1
in v/=2
und {}
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
m4
anstatt sie cat
zu speichern. Es gibt auch pg
und 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 n
es 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- str
Funktion über eine Liste zugeordnet, und die Elemente werden dann verkettet, sodass Sie YES
oder 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";