Напишіть повну програму, щоб дізнатись, чи є двійкове представлення числа паліндром чи ні?
Sample Input
5
Sample Output
YES
Роздрукуйте, YES
якщо двійкове представлення паліндром та NO
інше.
Напишіть повну програму, щоб дізнатись, чи є двійкове представлення числа паліндром чи ні?
Sample Input
5
Sample Output
YES
Роздрукуйте, YES
якщо двійкове представлення паліндром та NO
інше.
Відповіді:
n=bin(input())[2:]
print'YNEOS'[n!=n[::-1]::2]
[n!=n[::-1]::2]
?
$><<%w(YES NO)[(n="%b"%$*)<=>n.reverse]
Завдяки Майклу Колю "% b"% отримує хитрість.
C 84 81 74 Персонажі
r;main(v,x){for(scanf("%d",&v),x=v;v;v/=2)r=r*2|v&1;puts(r-x?"NO":"YES");}
Він не використовує жодної функції, як реверс рядків.
r*=2,r|=v&1
-> r=r*2|v&1
(-2)
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 знака.
<?=strrev($n=decbin(`cat`))==$n?@YES:@NO;
Тест:
php 713.php <<< 5
YES
php 713.php <<< 6
NO
m4
замість того, cat
щоб зберегти один. Є також pg
і dd
(що записує кілька байтів у stderr).
$_=sprintf'%b',shift;
print reverse==$_?YES:NO
Рубі, 43 символи
puts((n="%b"%gets)==n.reverse ? "YES":"NO")
puts (n="%b"%gets)==n.reverse ? :YES: :NO
‘NO…Ü‘#EbÂQè
-5 байт завдяки Аднану.
‘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(@_)}
Цей конструює всі паліндри до 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'''
((-:|.)#: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
Я хотів це зробити, не використовуючи рядків взагалі.
ітераційне рішення, 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
є двійковий паліндром, верхня половина xor нижня половина також є бінарним паліндром і навпаки.
порт відмінної відповіді на 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
функція Python відображається через список, а потім елементи об'єднуються, так що ви бачите 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
Ява, 97 85 символів
return Integer.toBinaryString(i).equals(new StringBuffer(s).reverse()+"")?"YES":"NO";
Рядок s = Integer.toBinaryString (i); повернути s.equals (нові StringBuffer (s) .reverse () + "")? "ТАК": "НІ";