Python ile “1-2-4-8-16-32-….-131072” Yazan Program
Başlıktan da anlaşılacağı üzere, yandaki artış miktarı olan ifadeyi elde etmek için örnek bir Python programını yazacağız: “1-2-4-8-16-32-….-131072”. Bu ifade, 1’den başlayarak 2’nin kuvvetlerini (131072’ye kadar) yazmaktadır:
- Bir öncekinin iki katı olarak artış göstermekte. İşlemimizi while döngüsünü kullanarak bulalım. Ayrıca 131072 sayısına kaç adımda ulaştığını yazdıracak n değeri koyalım ve bir sonraki çözümümüzde bu n değerini kullanalım:
# Başlangıç değeri olarak 1 belirle
deger = 1
# Değer 131072'den küçük veya eşit olduğu sürece döngüyü çalıştır
while deger <= 131072:
# Değeri yazdır
print(deger)
# Değeri iki katına çıkar
deger *= 2
Bu kod parçası, deger
değişkenini 1 olarak başlatır ve deger
131072’ye eşit veya daha büyük olana kadar döngüyü çalıştırır. Her döngüde, deger
iki katına çıkarılır ve yazdırılır. Böylece, 1’den başlayarak 2’nin kuvvetlerini 131072’ye kadar yazdırmamızı sağlar. Kodu çalıştırmak için: Trinket
- Şimdi de for döngüsü kullanarak çözelim:
# 131072'nin 2'nin hangi kuvveti olduğunu bul
i = 0
while 2**i <= 131072:
i += 1
kuvvet = i - 1
# 2'nin kuvvetlerini hesapla ve yazdır
for i in range(kuvvet + 1):
print(2**i)
Örneğimizde, öncelikle 131072’nin 2’nin kaçıncı kuvveti olduğunu bulduk. Bu kuvveti bulduktan sonra o kuvvete kadar tüm 2’nin kuvvetlerini hesaplayıp yazdırdık. Bu, 1’den başlayarak 2’nin kuvvetlerini (131072’ye kadar) yazdırır. Kodu çalıştırmak için: Trinket
- Pekala ilk adım sayısını bulmadan da çözebiliriz. Yani n = 18 değeri yerine range aralığını oldukça yüksek yapıp bunun yerine break komutu kullanabiliriz. Bakınız:
# 2'nin kuvvetlerini hesapla ve yazdır
for i in range(100): # 100, yeterince yüksek bir sayıdır
if 2**i > 131072:
break
print(2**i)
Bu kod parçası, range(100)
kullanarak 0’dan 99’a kadar olan sayılar üzerinde döngüyü çalıştırır, ancak 2^i 131072’yi geçtiğinde break
komutu döngüyü erken sonlandırır. Kodu çalıştırmak için: Trinket