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)} ")
    }

}
Örnek Çıktı 1
Örnek Çıktı 2
Örnek Çıktı 3

**Bana en büyük desteğiniz yazılarıma yorum yapmanız ve paylaşmanızdır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

eighteen − 18 =