English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Wenn eine einzelne Zahl in einem Integer-Array, das eine Zahlenwertsequenz enthält, fehlt, kann sie auf Basis der Summe der Ziffern oder auf Basis des XOR der Ziffern gefunden werden.
Basierend auf der Summe der Ziffern -
Die Summe der n Indizes beträgt [n *(n + 1)] / 2Verwenden Sie diese Methode, um die Summe der n Ziffern zu erhalten.
Fügen Sie alle Elemente im Array hinzu.
Subtrahieren Sie die Summe der Ziffern im Array aus der Gesamtsumme der n Ziffern.
import java.util.Scanner; public class MissingNumber { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Geben Sie n-Wert: "); int n = sc.nextInt(); int inpuArray[] = new int[n]; System.out.println("Geben Sie (n-1) Anzahl der Ziffern: "); for(int i=0; i<=n-2; i++) { inpuArray[i] = sc.nextInt(); } //Suchen Sie die fehlende Zahl int sumOfAll = (n*(n+1))/2; int sumOfArray = 0; for(int i=0; i<=n-2; i++) { sumOfArray = sumOfArray+inpuArray[i]; } int missingNumber = sumOfAll-sumOfArray; System.out.println("Fehlende Zahl ist: ");+missingNumber); } }
Ausgabefolge
Geben Sie den Wert von n ein: 5 Geben Sie (n-1) Zahlen: 1 2 4 5 Die fehlende Zahl ist: 3
Verwenden Sie die XOR-Operation-Eine andere Methode zur Suche nach der fehlenden Zahl ist die XOR-Operation.
Finden Sie den XOR aller Zahlen.
Finden Sie den XOR aller Zahlen im Array.
Dann finden Sie die XOR der beiden Ergebnisse.
import java.util.Scanner; public class MissingNumber { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Geben Sie den Wert von n ein: "); int n = sc.nextInt(); int inpuArray[] = new int[n]; System.out.println("Geben Sie (n-1) numbers: "); for(int i=0; i<=n-2; i++) { inpuArray[i] = sc.nextInt(); } //Verlorene Zahl finden int xorArray = inpuArray[0]; //XOR der Elemente des Arrays for(int i=1; i <= n-1; i++) { xorArray = xorArray ^ i; } int xorAll = inpuArray[0]; //Bitweise XOR-Operation der Arrayelemente for(int i=1; i <= n+1; i++) { xorAll = xorAll ^ i; } int missingNumber = xorArray ^ xorAll; System.out.println("Fehlende Zahl ist: ");+missingNumber); } }
Ausgabefolge
Geben Sie den Wert von n ein: 5 Geben Sie (n-1) Zahlencodes: 1 2 4 5 Fehlende Zahl ist: 3