Umut D.

Umut D.

Powered by Jekyll & Github

  • Coding-Challenges

  • Soru

    Programcıya, rastgele bir sayı (girilenSayi) veriliyor ve mevcut sayiyi romen rakamına dönüştürmesi isteniyor.

    Not: Girilen sayının en fazla 3999’a kadar olması isteniyor.

    Örnek

    Girdi Çıktı
    girilenSayi: 11 Sonuç: XI
    girilenSayi: 8 Sonuç: VIII

    Çözüm - C#

    using System;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int girilenSayi = 8;
                string romenRakami = null;
    
                // Romen rakamlarını dizi olarak belirt
                string[] binlerBasamagi = { "", "M", "MM", "MMM" };
                string[] yuzlerBasamagi = { "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" };
                string[] onlarBasamagi = { "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" };
                string[] birlerBasamagi = { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" };
    
                // Girilen sayının basamak durumuna göre (Örn. 17) 10'a böl, kalan sayısı belirle.
                // Elde edilen sayıyı ilgili diziden alarak değişkene ekle  
                romenRakami += binlerBasamagi[(girilenSayi / 1000) % 10];
                romenRakami += yuzlerBasamagi[(girilenSayi / 100) % 10];
                romenRakami += onlarBasamagi[(girilenSayi / 10) % 10];
                romenRakami += birlerBasamagi[girilenSayi % 10];
    
                Console.WriteLine("Sonuç: " + romenRakami);
    
                Console.Read();
            }
        }
    }
    

    Çözüm - Java

    public class Main {
        public static void main(String[] args) {
     
            int girilenSayi = 8;
            String romenRakami = "";
     
            // Romen rakamlarını dizi olarak belirt
            String[] binlerBasamagi = {"", "M", "MM", "MMM"};
            String[] yuzlerBasamagi = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
            String[] onlarBasamagi = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
            String[] birlerBasamagi = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
     
            // Girilen sayının basamak durumuna göre (Örn. 17) 10'a böl, kalan sayısı belirle.
            // Elde edilen sayıyı ilgili diziden alarak değişkene ekle
            romenRakami += binlerBasamagi[(girilenSayi / 1000) % 10];
            romenRakami += yuzlerBasamagi[(girilenSayi / 100) % 10];
            romenRakami += onlarBasamagi[(girilenSayi / 10) % 10];
            romenRakami += birlerBasamagi[girilenSayi % 10];
     
            System.out.println("Sonuç: " + romenRakami);
        }
    }