Soru & Cevap

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

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user ranluteb
ranluteb
15.12.2022 - 05:34

// 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?

 

Profile picture for user zaimonur08
zaimonur08
14.12.2022 - 10:46

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.

 

Profile picture for user omerfaruksezen
omerfaruksezen
13.12.2022 - 10:07

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/