Gönderen Konu: Soru 1: Sayfa Numaralama  (Okunma sayısı 4062 defa)

Çevrimdışı Lokman Gökçe

  • Lokman Gökçe
  • Administrator
  • Geo-Maniac
  • *********
  • İleti: 3.716
  • Karma: +23/-0
  • İstanbul
Soru 1: Sayfa Numaralama
« : Mart 16, 2022, 08:29:00 ös »
Pek yabancı olmadığımız bir kombinatorik sorusu ile başlayalım:

Problem: Bir kitabın sayfaları $1$'den $n$'ye kadar numaralandırıyorken klavyenin tuşlarına basılıyor.

(a) Tuşlara kaç kez basılmıştır?

(b) Belli bir $m$ rakamı kaç kez kullanılmıştır?

Örneğin, $n=11$ sayfalı bir kitap ve $m=1$ rakamı için

(a) Tuşlara $13$ defa basılmıştır.

(b) $1$ rakamı $4$ defa kullanılmıştır.

yanıtlarını (çıktılarını) alırız.



Soru 1: Python 3.9'da $n$ ve $m$ girdileri için yukarıdaki problemi çözen programı yazınız.



Açıklama:

n = int(input())

m = input().strip()

gibi int (integer) veya str (string) türünde girdi tanımlamaları ile başlayabilirsiniz.
« Son Düzenleme: Mart 17, 2022, 05:49:06 ös Gönderen: Lokman Gökçe »
Uğraşınca çözebileceğim zorlukta olan soruları çözmeyi severim.

Çevrimdışı Lokman Gökçe

  • Lokman Gökçe
  • Administrator
  • Geo-Maniac
  • *********
  • İleti: 3.716
  • Karma: +23/-0
  • İstanbul
Ynt: Soru 1: Sayfa Numaralama
« Yanıtla #1 : Mart 16, 2022, 08:31:14 ös »
Çözüm: startswith() ve sep() fonksiyonları ile şöyle bir çözümüm var. Google colab'da keyfi değerler girilerek çalıştırılabilir

Kod: [Seç]
n = int(input())
m = input().strip()
pages = []
for i in range(1, n + 1):
    pages.append(i)
# print(*pages, sep = '') kodu ile kullanılan tüm numaralardan oluşan liste görülebilir.
# Şimdi bu 'boşluksuz' listeyi str biçimine dönüştürelim.
metin=""
for kelime in pages:
    metin=metin+ str(kelime)
print("Tuşlara {} defa basılmıştır.".format(len(metin)))
def count_substring(metin, m):
    count = 0
    for j in range(len(metin)):
        if metin[j:].startswith(m):
            count += 1
    return count
print("{} rakamı {} defa kullanılmıştır.".format(m, count_substring(metin, m)))


Python'daki startswith() ve sep() fonksiyonlarının görevleri için google'dan arama yapılabilir.
« Son Düzenleme: Mart 17, 2022, 05:50:21 ös Gönderen: Lokman Gökçe »
Uğraşınca çözebileceğim zorlukta olan soruları çözmeyi severim.

 


Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 
SimplePortal 2.3.3 © 2008-2010, SimplePortal