Déterminer si le nombre est pair ou impair sans utiliser de code conditionnel
Comment savoir si un nombre est pair ou impair, sans l'aide de if
condition ou ternaire opérateurs en Java?
À cette question est donnée par mon professeur. Il a également me donner un indice qu'il est possible à l'aide d'un opérateur au niveau du bit.
Êtes-vous sûr que votre professeur signifiait
Oui, il a dit, sans l'aide de if-else conditon
Avertissement: l'opérateur conditionnel ternaire "?:" EST un si-alors-sinon
Votre commentaire fait 3 réponses non valides 🙂
Voulez-vous dire par "pair ou impair", ou "pair ou impair de la parité" ? Ils sont deux choses différentes. Votre titre dit "parité", mais la question juste dit "pair ou impair".
without using if condition
et pas without using modulo operator
?Oui, il a dit, sans l'aide de if-else conditon
Avertissement: l'opérateur conditionnel ternaire "?:" EST un si-alors-sinon
Votre commentaire fait 3 réponses non valides 🙂
Voulez-vous dire par "pair ou impair", ou "pair ou impair de la parité" ? Ils sont deux choses différentes. Votre titre dit "parité", mais la question juste dit "pair ou impair".
OriginalL'auteur user3122903 | 2013-12-20
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs façons de ne pas utiliser
if
et d'obtenir un comportement qui sera la même que siif
a été utilisé, comme l'opérateur ternairecondition ? valueIfTrue : valueIfFalse
ouswitch/case
.Mais pour être difficile, vous pouvez également utiliser des tableaux et essayer de comprendre certains transformation de l'importance de notre bon index de tableau. Dans ce cas, votre code pourrait ressembler à
de sortie:
Vous pouvez modifier
number % 2
avecnumber & 1
d'utiliser la suggestion de votre professeur. Explication de la façon dont il fonctionne peut être trouvé ici.de jeu de mots? De toute façon, je suis d'accord - astuce, +1.
OriginalL'auteur Pshemo
Considérer un certain nombre de représentation dans un format binaire (E. g., 5 serait 0b101).
Un nombre impair a un "1" que ses singles chiffre, un nombre encore eu un zéro. Donc tout ce que vous avez à faire est au niveau du bit et avec 1 extraire seulement que les chiffres, et d'examiner le résultat:
if(isEven(7)){}
??c'est ok. Mais si la construction est maintenant seulement à l'intérieur de l'extérieur de la méthode qui appelle cette méthode. J'avais également suggéré num & 1 donc +1
7 & 1 == 1 et 1 != 0 il serait correctement return false
Je suis en train de parler à l'aide de la méthode 🙂
@sᴜʀᴇsʜᴀᴛᴛᴀ
println(isEven(7));
🙂OriginalL'auteur Mureinik
isOdd
sera1
si le nombre est impair, sinon il sera0
.OriginalL'auteur umanganiello
Vouliez-vous dire quelque chose de ce genre?
OriginalL'auteur Arne Burmeister
Chaque nombre impair de 1 à la fin de sa représentation binaire.
Exemple :
OriginalL'auteur SANN3
Viens de voir maintenant
'Without using IF'
OriginalL'auteur gabriel
Juste un petit wrapper sur le processus défini...
OriginalL'auteur boxed__l
Je voudrais utiliser:
Une seule ligne de code.
OriginalL'auteur iPot
OriginalL'auteur Satvant Singh
Méthode 1:
Méthode 2:
Méthode 1 diffère de la accepté de répondre de la manière qu'il représente pour les nombres négatifs, qui sont aussi pris en considération les paires/impaires.
OriginalL'auteur prashant
OriginalL'auteur Keshav Gera
vous pouvez également utiliser des opérateurs de décalage de bit-à-bit
(nombre >> 1)<<1 == numéro, puis encore autre chose bizarre
OriginalL'auteur Prashu
Bien, oui, vous pouvez faire usage de l'opérateur au niveau du bit. Voici un exemple,
OriginalL'auteur Shiva