Bir sayının ikili gösteriminin palindrom olup olmadığını bulmak için tam bir program yazın?
Sample Input
5
Sample Output
YES
YESİkili gösterim palindrom ise veya NObaşka bir şekilde yazdırın .
Bir sayının ikili gösteriminin palindrom olup olmadığını bulmak için tam bir program yazın?
Sample Input
5
Sample Output
YES
YESİkili gösterim palindrom ise veya NObaşka bir şekilde yazdırın .
Yanıtlar:
n=bin(input())[2:]
print'YNEOS'[n!=n[::-1]::2]
[n!=n[::-1]::2]?
$><<%w(YES NO)[(n="%b"%$*)<=>n.reverse]
Michael Kohl sayesinde "% b"% aldatıyor.
C 84 81 74 Karakterler
r;main(v,x){for(scanf("%d",&v),x=v;v;v/=2)r=r*2|v&1;puts(r-x?"NO":"YES");}
Ters dize gibi bir işlev kullanmaz.
r*=2,r|=v&1-> r=r*2|v&1(-2)
alert((a=(prompt()*1).toString(2))-a.split("").reverse().join("")?"NO":"YES")
Daha fazla bilgi
prompt()*1 : Dizeyi sayıya dönüştürmek için hızlı hile.
.toString(2) : Javascript'te ikiliye bu şekilde dönüşürsünüz.
a.split("").reverse().join("") : Dizeyi tersine çevirmek için yerel bir destek yoktur, bu nedenle dizeyi diziye ve dizeyi dizeye dönüştürmeniz gerekir.
("[part1]" - "[part 2]")?"YES":"NO": -Yerine geçer !=1 kömürü kaydedin.
<?=strrev($n=decbin(`cat`))==$n?@YES:@NO;
Ölçek:
php 713.php <<< 5
YES
php 713.php <<< 6
NO
m4yerine catbirini kurtarmak için. Ayrıca vardır pgve dd(stderr'a bazı baytlar yazar).
$_=sprintf'%b',shift;
print reverse==$_?YES:NO
Ruby, 43 karakter
puts((n="%b"%gets)==n.reverse ? "YES":"NO")
puts (n="%b"%gets)==n.reverse ? :YES: :NO
‘NO…Ü‘#EbÂQè:).
bin()var olduğunu bilmiyordum
n=bin(input())[2:]
print'YES'if n==n[::-1]else'NO'
['NO','YES'][n==n[::-1]]
Ters dize yok:
print f(split//,sprintf'%b',shift);
sub f{@_<=1?YES:shift!=pop()?NO:f(@_)}
Bu, 2 ^ 32'ye kadar tüm palindromları oluşturur.
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
Dizeleri kullanmadan yapmak istedim.
yinelemeli çözüm, 78 bayt
for($x=log($n=$argv[1],2);$i<$x&($n>>$i^$n>>$x-$i^1);$i++);echo$i<$x/2?NO:YES;
özyinelemeli çözüm, 113 bayt
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;
Eğer nikili palindrom, üst yan XOR alt yarısı, aynı zamanda tam tersi bir ikili palindrom ve yardımcısı olup.
fR0DDY'den gelen mükemmel C cevabının bir portu , 58 bayt
for($x=2*$v=$argv[1];$x/=2;$r=$r*2|$x&1);echo$r-$v?NO:YES;
ikili ters. Columbus´ yumurtası.
Bayt sayımı ISO 8859-1 kodlamasını varsayar.
.+
$*
+`(1+)\1
${1}0
01
1
^((.)*?).??((?<-2>.)*$)
$1¶$3
O$^`.(?=.*¶)
^(.*)¶\1
Tekli'ye dönüştür. Bunu ikili dosyaya dönüştürün. Numarayı ikiye bölün ve varsa ortadaki bir rakamı kaldırın. İlk yarıyı ters çevirin. Her iki yarı da eşitse eşleşir.
BṚ⁼Bị“YES“NO
Açıklama:
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).
Yazdırmadan önce, Python'un strişlevi bir liste ile eşleştirilir ve ardından öğeler birleştirilir, böylece YESveya öğesini görürsünüz NO.
Yalnızca sistem platformlarıyla (php, neko, cpp vb.) Çalışır. Komut satırı bağımsız değişkenleri aracılığıyla girdi alır.
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 karakter
return Integer.toBinaryString(i).equals(new StringBuffer(s).reverse()+"")?"YES":"NO";
Dize s = Tamsayı.toBinaryString (i); return s.equals (yeni StringBuffer (s) .reverse () + "")? "EVET": "HAYIR";