Geomania.Org Forumları
Python Kodlama ve Matematik => Python Kodlama ve Matematik => Konuyu başlatan: Lokman Gökçe - 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.
-
Çözüm: startswith() ve sep() fonksiyonları ile şöyle bir çözümüm var. Google colab'da keyfi değerler girilerek çalıştırılabilir
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.