1'den 100'e Kadar Sayıldığında Kaç Tane 9 Rakamı Bulunur?

Facebook'ta bir arkadaşım fotoğraftaki soruyu sormuş. 1'den 100'e kadar sayıldığında kaç tane 9 rakamı bulunur? Bu tür sorular bizler için algoritma üretme zamanıdır. Gerçekten de merak ettim. Kalem kağıt alıp saymak yerine işi Console bıraktım.  Algoritmayı üretmeden önce 1 ile 100 arasındaki sayıları bulmak için gerekli bilgileri kısaca sıralarsak;

  • 1 den 100'e kadar saymak için bir for döngüsü kurulmalı.
  • Döngü çalışırken 9 içeren rakamları bulmak için String sınıfından contains metodu kullanılmalı.
  • Sayıda birden fazla 9 olabilir. Kaç 9 olduğunu bulmak için ikinci bir döngü kurmak. Ben while döngüsünü tercih ettim.
  • Kaç adet 9 olduğunu saymak için int tipinde bir değişken.
            int sayac = 0; // Kaç adet 9 olduğunu saymak için sayaç oluşturduk.
            //1 den 100e kadar saydık.
            for (int i = 1; i <= 100; i++)
            {
                //Sayıları stringe çevirerek sadece 9 içerenleri seçtik
                if (i.ToString().Contains("9"))
                {
                    Console.Write(i+", ");
                    //Sayı içerisinde 9 un konumunu alalım.
                    int konum = i.ToString().IndexOf('9');

                    //IndexOf metodu konumu bulmazsa false (int tipinde -1) döndürür.
                    //Kaç 9 olduğunu bulmak için ikinci bir döngü kuralım
                    while (konum != -1)
                    {
                        //Sayıda kaçtane 9 olduğunu aramak için basamakları tek tek dolanıyoruz.
                        konum = i.ToString().IndexOf('9', konum + 1);
                        sayac++;
                    }
                }
            }
            //Sonucu ekrana yazdır.
            Console.WriteLine("\n1 ile 100 arasında " + sayac + " adet 9 var.");

Sonuç: 1 ile 100 arasındaki sayılar : 9, 19, 29, 39, 49, 59, 69, 79, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 1 ile 100 arasında 20 adet 9 var. 1 ile 1000 arasında 300 adet 9 var. 1 ile 10.000 arasında 4000 adet 9 var.  

Invalid option for langversion hatası ve çözümü Önceki Yazı

Invalid option for langversion hatası ve çözümü

GoDaddy'de Plesk Panel Üzerinde Ücretsiz SSL Sertifikası Kurulumu Nasıl Yapılır? Sonraki Yazı

GoDaddy'de Plesk Panel Üzerinde Ücretsiz SSL Sertifikası Kurulumu Nasıl Yapılır?

Yorum/Soru Yazın