Merhabalar, javada en çok tekrar eden sayıları basamak olara ...
12.12.2022 - 02:56
bu durumu girilen 7 haneli sayıların tüm basamak değerleri için nasıl yapabiliriz
69
Görüntülenme
0 Beğeni
// verilen bir dizi içerisindeki sayıların en çok tekrar eden basamağını bulur
int[] numbers = {2445, 2389, 1876, 5706};
// her bir basamak için tekrar sayısını tutacak olan bir dizi oluşturur
int[] digitCount = new int[10];
// 0-9 arasında 10 adet basamak var
// dizi içerisindeki sayıları döngü ile gezer for (int number : numbers) {
// number sayısının bir string temsili oluşturur
String numberAsString = Integer.toString(number);
// numberAsString'in elemanlarını diziye dönüştürür
char[] digits = numberAsString.toCharArray();
// dizinin elemanlarını döngü ile gezer
for (char digit : digits) {
// digit değişkenini integer bir değere dönüştürür
int digitAsInt = Character.getNumericValue(digit);
// digitAsInt değişkenini kullanarak digitCount dizisindeki
// ilgili elemanını 1 arttırır
igitCount[digitAsInt]++; } }
// Birde bunu dener misiniz?
Scanner sayi = new Scanner(System.in);
a = sayi.nextInt();
for(int i =0; i<7; i++) {
while(a>0) {
b = a % 10;
c[0][i] = b;
a = a / 10;
i++;
}
}
Bu şekilde de 0. dizi elemanı 1'ler basamağı olacak şekilde dizinin içine aktarabilirsin.
Sayıları ayrı ayrı string'e dönüştürüp bu stringlerdeki her bir index için ayrı bir array oluşturabilirsin:
sayiString = Integer.toString(sayi);
Arrays.fill(b1,Character.getNumericValue(sayiString.charAt(0))); Arrays.fill(b2,Character.getNumericValue(sayiString.charAt(1))); Arrays.fill(b3,Character.getNumericValue(sayiString.charAt(2))); Arrays.fill(b4,Character.getNumericValue(sayiString.charAt(3))); Arrays.fill(b5,Character.getNumericValue(sayiString.charAt(4))); Arrays.fill(b6,Character.getNumericValue(sayiString.charAt(5))); Arrays.fill(b7,Character.getNumericValue(sayiString.charAt(6)));
// b1,b2,b3,b4,b5,b6,b7 7 elemanlı int array
Array'deki en çok tekrar eden sayıyı bulan code:
https://www.geeksforgeeks.org/frequent-element-array/