เขียนโปรแกรมเต็มรูปแบบเพื่อค้นหาว่าการแสดงเลขฐานสองของตัวเลขเป็น Palindrome หรือไม่?
Sample Input
5
Sample Output
YES
พิมพ์YES
หากการเป็นตัวแทนไบนารีคือ palindrome และNO
อื่น ๆ
เขียนโปรแกรมเต็มรูปแบบเพื่อค้นหาว่าการแสดงเลขฐานสองของตัวเลขเป็น Palindrome หรือไม่?
Sample Input
5
Sample Output
YES
พิมพ์YES
หากการเป็นตัวแทนไบนารีคือ palindrome และNO
อื่น ๆ
คำตอบ:
~2base.-1%="YES""NO"if
n=bin(input())[2:]
print'YNEOS'[n!=n[::-1]::2]
[n!=n[::-1]::2]
ทำอย่างไร
$><<%w(YES NO)[(n="%b"%$*)<=>n.reverse]
ขอขอบคุณ Michael% ที่ "% b" ได้รับเล่ห์เหลี่ยม
alert((a=(prompt()*1).toString(2))-a.split("").reverse().join("")?"NO":"YES")
ข้อมูลมากกว่านี้
prompt()*1
: เคล็ดลับด่วนในการแปลงสตริงเป็นตัวเลข
.toString(2)
: นั่นคือวิธีที่คุณแปลงเป็นไบนารี่ใน javascript
a.split("").reverse().join("")
: ไม่มีการสนับสนุนดั้งเดิมเพื่อย้อนกลับสตริงดังนั้นคุณต้องแปลงสตริงเป็นอาร์เรย์และอาร์เรย์เป็นสตริง
("[part1]" - "[part 2]")?"YES":"NO"
: -
ใช้แทน!=
การบันทึก 1 อักขระ
$_=sprintf'%b',shift;
print reverse==$_?YES:NO
Ruby, 43 ตัวอักษร
puts((n="%b"%gets)==n.reverse ? "YES":"NO")
puts (n="%b"%gets)==n.reverse ? :YES: :NO
('NO','YES')[($a=[Convert]::ToString("$input",2))-eq-join$a[64..0]]
‘NO…Ü‘#EbÂQè
:)
bin()
อยู่หรือไม่
n=bin(input())[2:]
print'YES'if n==n[::-1]else'NO'
['NO','YES'][n==n[::-1]]
ไม่มีการย้อนกลับสตริง:
print f(split//,sprintf'%b',shift);
sub f{@_<=1?YES:shift!=pop()?NO:f(@_)}
อันนี้สร้าง palindromes ทั้งหมดได้สูงสุด 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
C=`dc<<<$1\ 2op`;[ $C = `rev<<<$C` ]&&echo YES||echo NO
13 : ';(]-:|.)#:y{''YES'';''NO'''
((-:|.)#:x){2 3$'NO YES'
เช่น:
((-:|.)#:5){2 3$'NO YES'
YES
((-:|.)#:12){2 3$'NO YES'
NO
((-:|.)#:125){2 3$'NO YES'
NO
((-:|.)#:63){2 3$'NO YES'
YES
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
18 ไบต์ด้วย:
@,"NO""YES"qJ.BQ_J
ฉันต้องการที่จะทำโดยไม่ต้องใช้สายเลย
โซลูชันวนซ้ำ 78 ไบต์
for($x=log($n=$argv[1],2);$i<$x&($n>>$i^$n>>$x-$i^1);$i++);echo$i<$x/2?NO:YES;
โซลูชันแบบเรียกซ้ำ 113 ไบต์
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
เป็นไบนารี Palindrome, ครึ่งบนของ xor, ครึ่งล่างยังเป็นไบนารี palindrome และในทางกลับกัน
พอร์ตของคำตอบ C ที่ยอดเยี่ยมจาก fR0DDY , 58 ไบต์
for($x=2*$v=$argv[1];$x/=2;$r=$r*2|$x&1);echo$r-$v?NO:YES;
ย้อนกลับแบบไบนารี ไข่โคลัมบัส
จำนวนไบต์ถือว่าการเข้ารหัส ISO 8859-1
.+
$*
+`(1+)\1
${1}0
01
1
^((.)*?).??((?<-2>.)*$)
$1¶$3
O$^`.(?=.*¶)
^(.*)¶\1
แปลงเป็นเอก แปลงเป็นไบนารี่ ตัดตัวเลขครึ่งแล้วลบตัวเลขกลางหากมี กลับครึ่งแรก จับคู่ถ้าทั้งสองแบ่งเท่ากัน
BṚ⁼Bị“YES“NO
คำอธิบาย:
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).
ก่อนที่จะพิมพ์, ธstr
ฟังก์ชั่นแมปผ่านรายการแล้วองค์ประกอบที่มีการตัดแบ่งเพื่อให้คุณเห็นหรือYES
NO
ใช้งานได้กับแพลตฟอร์มระบบเท่านั้น (php, neko, cpp, ฯลฯ ) รับอินพุตผ่านอาร์กิวเมนต์บรรทัดรับคำสั่ง
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 ตัวอักษร
return Integer.toBinaryString(i).equals(new StringBuffer(s).reverse()+"")?"YES":"NO";
String s = Integer.toBinaryString (i); ส่งคืน s.equals (StringBuffer ใหม่ (.) .reverse () + "")? "YES": "ไม่";