Ecrire un programme complet pour savoir si la représentation binaire d'un nombre est palindrome ou non?
Sample Input
5
Sample Output
YES
Imprimer YES
si la représentation binaire est palindrome et NO
autre.
Ecrire un programme complet pour savoir si la représentation binaire d'un nombre est palindrome ou non?
Sample Input
5
Sample Output
YES
Imprimer YES
si la représentation binaire est palindrome et NO
autre.
Réponses:
n=bin(input())[2:]
print'YNEOS'[n!=n[::-1]::2]
[n!=n[::-1]::2]
-il?
$><<%w(YES NO)[(n="%b"%$*)<=>n.reverse]
Merci à Michael Kohl, "% b"% obtient un truc.
C 84 81 74 Caractères
r;main(v,x){for(scanf("%d",&v),x=v;v;v/=2)r=r*2|v&1;puts(r-x?"NO":"YES");}
Il n'utilise aucune fonction comme la chaîne inverse.
r<<=1
en r*=2
, v>>=1
en v/=2
et {}
en ;
?
r*=2,r|=v&1
-> r=r*2|v&1
(-2)
alert((a=(prompt()*1).toString(2))-a.split("").reverse().join("")?"NO":"YES")
Plus d'information
prompt()*1
: Astuce rapide pour convertir une chaîne en nombre.
.toString(2)
: Voilà comment vous convertissez en binaire en javascript.
a.split("").reverse().join("")
: Il n'y a pas de support natif pour inverser la chaîne, vous devez donc convertir la chaîne en tableau et le tableau en chaîne.
("[part1]" - "[part 2]")?"YES":"NO"
: -
est un remplacement pour !=
enregistrer 1 caractère.
<?=strrev($n=decbin(`cat`))==$n?@YES:@NO;
Tester:
php 713.php <<< 5
YES
php 713.php <<< 6
NO
m4
au lieu d' cat
en enregistrer un. Il y a aussi pg
et dd
(qui écrit quelques octets dans stderr).
$_=sprintf'%b',shift;
print reverse==$_?YES:NO
Ruby, 43 caractères
puts((n="%b"%gets)==n.reverse ? "YES":"NO")
puts (n="%b"%gets)==n.reverse ? :YES: :NO
‘NO…Ü‘#EbÂQè
:).
bin()
existait
n=bin(input())[2:]
print'YES'if n==n[::-1]else'NO'
['NO','YES'][n==n[::-1]]
Pas de chaîne inversée:
print f(split//,sprintf'%b',shift);
sub f{@_<=1?YES:shift!=pop()?NO:f(@_)}
Celui-ci construit tous les palindromes jusqu'à 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
Je voulais le faire sans utiliser de cordes du tout.
solution itérative, 78 octets
for($x=log($n=$argv[1],2);$i<$x&($n>>$i^$n>>$x-$i^1);$i++);echo$i<$x/2?NO:YES;
solution récursive, 113 octets
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;
S'il n
s'agit d'un palindrome binaire, la moitié supérieure xou la moitié inférieure est également un palindrome binaire et vice versa.
un port de l'excellente réponse C de fR0DDY , 58 octets
for($x=2*$v=$argv[1];$x/=2;$r=$r*2|$x&1);echo$r-$v?NO:YES;
un revers binaire. Oeuf de Columbus.
Le nombre d'octets suppose un codage ISO 8859-1.
.+
$*
+`(1+)\1
${1}0
01
1
^((.)*?).??((?<-2>.)*$)
$1¶$3
O$^`.(?=.*¶)
^(.*)¶\1
Convertissez en unaire. Convertissez cela en binaire. Coupez le nombre en deux et supprimez un chiffre du milieu s'il y en a un. Inversez la première moitié. Match si les deux moitiés sont égales.
BṚ⁼Bị“YES“NO
Explication:
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).
Avant l'impression, la str
fonction de Python est mappée à travers une liste, puis les éléments sont concaténés, donc vous voyez YES
ou NO
.
Fonctionne uniquement avec les plates-formes système (php, neko, cpp, etc.). Prend des entrées via des arguments de ligne de commande.
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 caractères
return Integer.toBinaryString(i).equals(new StringBuffer(s).reverse()+"")?"YES":"NO";
String s = Integer.toBinaryString (i); return s.equals (nouveau StringBuffer (s) .reverse () + "")? "YES": "NO";