Viết một chương trình đầy đủ để tìm xem biểu diễn nhị phân của một số có phải là palindrom hay không?
Sample Input
5
Sample Output
YES
In YES
nếu đại diện nhị phân là palindrom và NO
cách khác.
Viết một chương trình đầy đủ để tìm xem biểu diễn nhị phân của một số có phải là palindrom hay không?
Sample Input
5
Sample Output
YES
In YES
nếu đại diện nhị phân là palindrom và NO
cách khác.
Câu trả lời:
n=bin(input())[2:]
print'YNEOS'[n!=n[::-1]::2]
[n!=n[::-1]::2]
làm gì?
$><<%w(YES NO)[(n="%b"%$*)<=>n.reverse]
Nhờ "% b"% của Michael Kohl bị lừa.
C 84 81 74 Nhân vật
r;main(v,x){for(scanf("%d",&v),x=v;v;v/=2)r=r*2|v&1;puts(r-x?"NO":"YES");}
Nó không sử dụng bất kỳ chức năng như chuỗi ngược.
r*=2,r|=v&1
-> r=r*2|v&1
(-2)
alert((a=(prompt()*1).toString(2))-a.split("").reverse().join("")?"NO":"YES")
Thêm thông tin
prompt()*1
: Thủ thuật nhanh để chuyển đổi chuỗi thành số.
.toString(2)
: Đó là cách bạn chuyển đổi thành nhị phân trong javascript.
a.split("").reverse().join("")
: Không có hỗ trợ riêng để đảo ngược chuỗi, vì vậy bạn phải chuyển đổi chuỗi thành mảng và mảng thành chuỗi.
("[part1]" - "[part 2]")?"YES":"NO"
: -
là sự thay thế !=
để tiết kiệm 1 char.
<?=strrev($n=decbin(`cat`))==$n?@YES:@NO;
Kiểm tra:
php 713.php <<< 5
YES
php 713.php <<< 6
NO
m4
thay vì cat
để lưu một cuộc gọi. Cũng có pg
và dd
(ghi một số byte vào stderr).
$_=sprintf'%b',shift;
print reverse==$_?YES:NO
Ruby, 43 ký tự
puts((n="%b"%gets)==n.reverse ? "YES":"NO")
puts (n="%b"%gets)==n.reverse ? :YES: :NO
‘NO…Ü‘#EbÂQè
:).
bin()
tồn tại
n=bin(input())[2:]
print'YES'if n==n[::-1]else'NO'
['NO','YES'][n==n[::-1]]
Không có chuỗi đảo ngược:
print f(split//,sprintf'%b',shift);
sub f{@_<=1?YES:shift!=pop()?NO:f(@_)}
Điều này xây dựng tất cả các palindromes lên đến 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
%2>"YNEOS"!qJ.BQ_J
Ngoài ra 18 byte:
@,"NO""YES"qJ.BQ_J
Tôi muốn làm điều đó mà không sử dụng chuỗi nào cả.
giải pháp lặp lại, 78 byte
for($x=log($n=$argv[1],2);$i<$x&($n>>$i^$n>>$x-$i^1);$i++);echo$i<$x/2?NO:YES;
giải pháp đệ quy, 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;
Nếu n
là một palindrom nhị phân, nửa trên xor nửa dưới cũng là một palindrom nhị phân và ngược lại.
một cổng của câu trả lời C xuất sắc từ fR0DDY , 58 byte
for($x=2*$v=$argv[1];$x/=2;$r=$r*2|$x&1);echo$r-$v?NO:YES;
một đảo ngược nhị phân. Trứng Columbus Columbus.
Số lượng byte giả định mã hóa ISO 8859-1.
.+
$*
+`(1+)\1
${1}0
01
1
^((.)*?).??((?<-2>.)*$)
$1¶$3
O$^`.(?=.*¶)
^(.*)¶\1
Chuyển đổi sang unary. Chuyển đổi nó thành nhị phân. Cắt một nửa số và loại bỏ một chữ số ở giữa nếu có. Đảo ngược nửa đầu. Khớp nếu cả hai nửa bằng nhau.
BṚ⁼Bị“YES“NO
Giải trình:
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).
Trước khi in, str
chức năng của Python được ánh xạ qua một danh sách và sau đó các phần tử được nối với nhau, do đó bạn nhìn thấy YES
hoặc NO
.
Chỉ hoạt động với các nền tảng hệ thống (php, neko, cpp, v.v.). Đưa đầu vào thông qua các đối số dòng lệnh.
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 ký tự
return Integer.toBinaryString(i).equals(new StringBuffer(s).reverse()+"")?"YES":"NO";
Chuỗi s = Integer.toBinaryString (i); return s.equals (StringBuffer mới (s) .reverse () + "")? "CÓ": "KHÔNG";