Wie würde ich das in Java machen? Finden Sie heraus, ob eine Zahl durch 2 teilbar ist, wenn die letzte Ziffer gerade ist. (0,2,4,6,8) Beispiel: 128 ist, 129 ist nichtTesten von geraden Zahlen in Java ohne Modulo-Operator
Antwort
sehen, ob das der am weitesten rechts stehende Bit 1 ist, dann ist es nicht, durch bitweisen Operatoren
führen logische und mit (für Beispiel)
yourNumber & 1
überprüfen Sie das am wenigsten signifikante Bit:
boolean even = (x & 1) == 0;
LSB ist 0
für gerade Zahl und 1
für ungerade, genau wie für Dezimalzahlen mindestens signifi cant digit ist 0
, wenn es durch 10
teilbar ist.
Mit der bitweisen Operation and
if((number&1) == 0)
bitweise UND-Operator &
Die & (bitweise AND) Operator jedes Bit des ersten Operanden vergleicht die entsprechenden Bits des zweiten bis Operand. Wenn beide Bits 1 sind, wird das entsprechende Bit des Ergebnisses auf 1 gesetzt. Andernfalls setzt es das entsprechende Ergebnisbit auf 0 (source).
In den binären Format gerade Zahlen hat die Least Significant Bit gleich Null. Wenn Sie dies wissen und den Operator & verwenden, können Sie herausfinden, ob es gerade ist oder nicht.
Also braucht es eine Nummer ..abcdy und vergleicht mit ..00001 wenn y Null ist ..abcdy & ..00001 ist auch Null, also eine gerade Zahl.
Myway;)
public class Even_Odd {
/**
* @param args
*/
public static void main(String[] args)
{
int val=550;
// TODO Auto-generated method stub
while(val>=0)
{
if(val==1)
{
System.out.println("Odd Number");
}
else if(val==0)
{
System.out.println("Even Number");
}
val=val-2;
// System.out.println(val);
}
}
}
Das ist cool .. Aber wie oft wird die While-Schleife ausgeführt, wenn Sie eine 15-20-stellige Nummer haben. Perfomance saugt .. Sie sollten lernen, die bessere Art, Dinge zu tun, obwohl sie schwer zu lernen sind. Nicht nur du, sondern generell als Programm.r – Stunner
if((n|1)==n)
System.out.println("odd");
else
System.out.println("even");
Grund: Zahl ungerade ist, wenn das LSB 1 ist, und auch aus anderen Gründen. Wenn n | 1 erledigt ist, bleibt das LSB von ungeradzahlig gleich, so dass die resultierende Zahl nicht geändert wird, während LSB einer geraden Zahl 1 wird, wodurch die Anzahl geändert wird.
Teilen Sie die Zahl von und multiplizieren Sie die Antwort , wenn Sie Ihre ursprüngliche Zahl erhalten dann die Zahl „Selbst“ wenn nicht, dann ist die Zahl „Odd“
public class EvenOrOdd
{
public static void main(String args[])
{
int value = 129;
if((value/2)*2==value)
{
System.out.println("The Given Number \""+value+"\" is Even");
}
else
{
System.out.println("The Given Number \""+value+"\" is Odd");
}
}
}
import java.io.*;
import java.util.*;
public class CheckNumber{
public static void main(String... args)throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please enter the number to check even or odd");
int number=Integer.parseInt(br.readLine());
String temp=number+""; //convert number to string
char ch=temp.charAt(temp.length()-1); //get last character
temp=ch+"";
if(temp.equals("0") || temp.equals("2") || temp.equals("4") || temp.equals("6") || temp.equals("8")) //check last number is even
System.out.println("Number is even");
else
System.out.println("Number is odd");
}
}
- 1. Hinzufügen von geraden Zahlen zu einer Liste?
- 2. Zählen von geraden Zahlen in einer gegebenen Liste
- 3. Erstellen einer Liste von geraden Zahlen in Python
- 4. Split Ziffernfolge in Listen von geraden und ungeraden Zahlen
- 5. Verstehen von Java-Zahlen ohne Vorzeichen
- 6. Finden von Modul der großen Zahlen in Java
- 7. Pyramide von Zahlen in Java
- 8. Erstellen Sie ein Array von zwanzig ganzen Zahlen und füllen Sie das Array mit geraden Zahlen
- 9. Zahlen Pyramide in java
- 10. Anzeigen von Zahlen ohne Dezimalpunkte
- 11. Modulooperator gibt unterschiedliche Ergebnisse mit führenden Nullen
- 12. Testen von Mitgliedschaftsanbieter ohne ASP.NET
- 13. Durchschnitt aller geraden Zahlen im Array mit For/While-Schleife?
- 14. Wie man einen Iterator über geraden Zahlen zurückgibt, wenn man einen Iterator über eine Liste von ganzen Zahlen gibt?
- 15. 2D-Array von 2 Zahlen in Java
- 16. Python - Überprüfen von ungeraden/geraden Zahlen und Ändern von Ausgaben auf Zahlengröße
- 17. Einrücken von geraden Sechseckreihen in CSS
- 18. Gerade Zahlen in Python
- 19. Berechnung schwerer Zahlen in Java
- 20. Verschiedene Auswahlkriterien in ungeraden und geraden Ereignisse
- 21. Wie man Zahlen ohne +
- 22. Formatieren von Zahlen in Jekyll ohne Verwendung von benutzerdefinierten Plugins
- 23. visualisieren komplexe Zahlen in Java
- 24. Subtrahieren zwei Zahlen ohne Verwendung von '-' Operator
- 25. bekommen alle Kombinationen von Zahlen ohne Wiederholung
- 26. Code nicht zurück zu erwartende Anzahl von geraden und Chancen
- 27. Java-Anwendung in einem anderen Gebietsschema testen
- 28. Java Generics und Zahlen
- 29. Erstellen eines Prädikats in Prolog, das die Quadrate nur der geraden Zahlen in einer Liste summiert
- 30. Wie man einen Vektor von ganzen Zahlen in Java haben
@AV.'% Kann nicht verwendet werden, um eine Antwort zu finden -> In Titel. –
Neben dem optimaleren Bit-Test (für Fall 2) würde auch die Ganzzahl-Division (für andere Fälle als 2) funktionieren: "n == (n/2) * 2". –
Und * warum * möchten Sie den Modulo Operator vermeiden? Zuallererst sollte Code lesbar sein und die * Absicht * des Programmierers beschreiben, also ist 'a% 2 == 0' * viel * aussagekräftiger als 'a & 1 == 0', was eine Eigenschaft des zugrundeliegenden Elements ausnutzt Binärdarstellung. – Heinzi