Divide by three, multiply by two (Üçe böl, ikiyle çarp)
Kotlin dili ile programcılık becerinizi geliştirmek için örnek problemleri çözmeye devam edilim. Bu yazıda ele alacağımız problem ve kodları aşağıdaki gibidir.
Problem
Ramazan rakamlarla oynamayı seven biridir. O toplam n elemanlı bir dizide bulunan x tamsayılarını tahtaya yazar ve n-1. sayıdan başlayarak aşağıdaki işlemleri yapar.
- x sayısını 3‘e böler (eğer x sayısı 3‘e bölünüyorsa)
- x sayısını 2 ile çarpar
Her işlemden sonra elde edilen yeni x sayısını tahtaya yazar. İşlemler n elemanlı dizide bulunan tüm sayılar kontrol edilerek yapılır. Yani tahtada n adet sayı yazılınca işlem tamamlanmış olur.
Bu uygulamada sizlere n elemanlı bir dizi verilir. Dizi elemanları rastgele girilir. Amacınız verilen dizi elemanlarını yukarıda verilen işlemlere göre yeniden sıralamaktır.
Giriş
Kullanıcı ilk satırda n sayısını girer. Bu sayı 2≤n≤100 şartını sağlamalıdır. İkinci satırda n adet sayı aralarında boşluk olacak şekilde girilir.
Çıkış
n elemanlı dizinin elemanları verilen kurallara göre ekrana yazılır.
Örnek
Giriş – 1
6
4 8 6 3 12 9
Çıkış -1
9 3 6 12 4 8
Giriş -2 –
4
42 28 84 126
Çıkış -2
126 42 84 28
Giriş -3 –
2
1000000000000000000 3000000000000000000
Çıkış -3
3000000000000000000 1000000000000000000
fun readLn() = readLine()!! fun readArr() = readLn().split(" ") fun readToInt() = readArr().map { it.toInt() } fun readToLong() = readArr().map { it.toLong() } fun main(args: Array<String>) { var n = readLn().toInt() var arr = arrayListOf<Long>() var arrNew = arrayListOf<Long>() arr = readToLong() as ArrayList<Long> if (arr[arr.size - 1] % 3 == 0L) { arrNew.add(arr[arr.size - 1]) } var i = 0 if (n in 2..100){ loop@ while (true) { print("${arrNew[i]} ") var x = arrNew[i] if (arr.contains(x / 3)) arrNew.add(x / 3) if (arr.contains(x * 2)) arrNew.add(x * 2) i++ if (arrNew.size == arr.size) break@loop } print("${arrNew.get(arrNew.size-1)} ") } }
**Bana en büyük desteğiniz yazılarıma yorum yapmanız ve paylaşmanızdır.