Project Euler 4: En Büyük Palindrom Çarpımı
Soru: Palindrom sayılar her iki yönden de aynı okunan sayılardır. İki basamaklı iki sayının çarpımıyla oluşturulabilen en büyük palindrom 91*99=9009'dur. Üç basamaklı iki sayının çarpımı olarak yazılabilen en büyük palindromu bulunuz.Bu soruda yapmamız gereken iki temel işlem var: Sayının palindrom olup olmadığını test etmek ve en büyük palindromu bulmak.
Palindrom Testi
Aslında sorunun amacı her ne kadar palindrom olup olmadığının testiyle uğraştırmaya çalışsa da bunu elimizdeki metotlar ile kolayca yapabiliyoruz. Fakat yine de mantığını anlamakta fayda var. Elimizdeki sayıyı önce metine çevirip, ardından karakterlere ayırmalıyız. Sonra bu karakterleri ters sırayla başka bir metin olarak kaydedip, ilk metin ile aynı olup olmadığını kontrol etmeliyiz. Bunu aşağıdaki kod parçacığı ile kolaylıkla yapabiliyoruz.
En Büyük Palindrom
Üç basamaklı iki sayının çarpımları arasından en büyük palindromu bulmak biraz yorucu bir işlem. 100 ile 999 arasından bir sayı seçip, yine 100 ile 999 arasından seçilen bir sayı ile çarpmamız gerekiyor. Yani 900*900=810000 seçenek demek. Her birini tek tek değerlendirirken de ayrıca işlem yapıyoruz. Bu durum fazlasıyla gereksiz işlem barındırıyor. Basit bir yaklaşımla en büyük palindromun 900'ün üzerindeki iki sayının çarpımı olarak ifade edilebileceğini düşünebiliriz. Böylelikle sadece 100*100=10000 seçenek kalır. Böyle bir varsayımda bulunarak 81 kat daha az işlem yapmış oluyoruz. Yani problemi çözme süremiz neredeyse yüzde birine iniyor.
Böylelikle sonuç: 913*993 = 906609 olarak bulunur.
Ögetay Kayalı
İçeriklerimizin bilimsel gerçekleri doğru bir şekilde yansıtması için en üst düzey çabayı gösteriyoruz. Gözünüze doğru gelmeyen bir şey varsa, mümkünse güvenilir kaynaklarınızla birlikte bize ulaşın!
Bu içeriğimizle ilgili bir sorunuz mu var? Buraya tıklayarak sorabilirsiniz.
Soru & Cevap Platformuna Git- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
Evrim Ağacı'na her ay sadece 1 kahve ısmarlayarak destek olmak ister misiniz?
Şu iki siteden birini kullanarak şimdi destek olabilirsiniz:
kreosus.com/evrimagaci | patreon.com/evrimagaci
Çıktı Bilgisi: Bu sayfa, Evrim Ağacı yazdırma aracı kullanılarak 19/03/2024 15:07:43 tarihinde oluşturulmuştur. Evrim Ağacı'ndaki içeriklerin tamamı, birden fazla editör tarafından, durmaksızın elden geçirilmekte, güncellenmekte ve geliştirilmektedir. Dolayısıyla bu çıktının alındığı tarihten sonra yapılan güncellemeleri görmek ve bu içeriğin en güncel halini okumak için lütfen şu adrese gidiniz: https://evrimagaci.org/s/12595
İçerik Kullanım İzinleri: Evrim Ağacı'ndaki yazılı içerikler orijinallerine hiçbir şekilde dokunulmadığı müddetçe izin alınmaksızın paylaşılabilir, kopyalanabilir, yapıştırılabilir, çoğaltılabilir, basılabilir, dağıtılabilir, yayılabilir, alıntılanabilir. Ancak bu içeriklerin hiçbiri izin alınmaksızın değiştirilemez ve değiştirilmiş halleri Evrim Ağacı'na aitmiş gibi sunulamaz. Benzer şekilde, içeriklerin hiçbiri, söz konusu içeriğin açıkça belirtilmiş yazarlarından ve Evrim Ağacı'ndan başkasına aitmiş gibi sunulamaz. Bu sayfa izin alınmaksızın düzenlenemez, Evrim Ağacı logosu, yazar/editör bilgileri ve içeriğin diğer kısımları izin alınmaksızın değiştirilemez veya kaldırılamaz.