1
1 1
1 4 2
1 4 9 3
1 4 9 16 4
.
.
.
Şeklinde ilerleyen bu örüntüyü, kullanıcının belirlediği son değere kadar yazdıran bir bilgisayar programına ihtiyacım var. Örüntünün gidişi, sayıların karesinin yan yana gelmesi ile oluşuyor ve yanlarına sayıların adedi yazılıyor. Bunun kodunu R ve Python ile gösterebilir misiniz?
n <- 5
for (i in 1:n) {
line <- paste(rep(i, i), collapse = " ")
line <- paste(rep(i^2, i), line)
cat(line, "\n")
}
Python:
n = 5 // value
for i in range(1, n+1):
line = " ".join([str(i**2) for j in range(i)])
line = " ".join([str(i) for j in range(i)]) + " " + line
print(line)
Yukarıdaki R, aşağıdaki Python. Böyle mi istiyorsunuz?
Şeklinde ilerleyen bu örüntüyü, kullanıcının belirlediği son değere kadar yazdıran bir bilgisayar programına ihtiyacım var. Örüntünün gidişi, sayıların karesinin yan yana gelmesi ile oluşuyor ve yanlarına sayıların adedi yazılıyor. Bunun kodunu r ve Python ile gösterebilir misiniz?
n <- 5
for (i in 1:n) {
line <- paste(rep(i, i), collapse = " ")
line <- paste(rep(i^2, i), line)
cat(line, "\n")
}
Python:
n = 5 // value
for i in range(1, n+1):
line = " ".join([str(i**2) for j in range(i)])
line = " ".join([str(i) for j in range(i)]) + " " + line
print(line)
Yukarıdaki R, aşağıdaki Python. Böyle mi istiyorsunuz?
Hayır, sayıların kareleri yanlarına geliyor sadece, ve yanda kaç tane sayı varsa onun adedini belirtecek bir sayı geliyor.
@Uton evet tam istediğim gibi yazmışsınız çok teşekkürler. Bu arada cat ve line terimlerinin anlamı nedir, ne için onları orada kullandınız acaba? R için soruyorum da.
Hayır, sayıların kareleri yanlarına geliyor sadece, ve yanda kaç tane sayı varsa onun adedini belirtecek bir sayı geliyor.
@Uton evet tam istediğim gibi yazmışsınız çok teşekkürler. Bu arada cat ve line terimlerinin anlamı nedir, ne için onları orada kullandınız acaba? R için soruyorum da.
Çözümü denediniz mi? Bana istediğiniz çıktıyı veriyor gibi gelmedi.
Verdiğiniz örüntüyü ya ben anlayamadım ya da örüntü düzensiz. Önce sayının karesi, sonra satırdaki sayı sayısı olsun diyorsunuz ama ilk satır bu düzeni baştan patlatıyor. 0'ın karesi 0, bir tane sayı bulunduğu için de yanında 1 yazması lazım. Hadi 1'den başlasın istiyorsunuz, bu sefer ilk satırın 1 1 olması gerekiyor. İlk sayının karesi + satırdaki sayı sayısı örüntüsü ancak böyle sağlanıyor.
0 da dahil olacak şekilde şöyle yazdım ben, 0'ı istemezseniz düzenleyebilirsiniz:
Python:
value = int(input("Provide a value: "))
for i in range(1, value + 1):
nums = [j*j for j in range(i)]
output = " ".join(str(i) for i in nums) + " " + str(i)
print(output)
Çözümü denediniz mi? Bana istediğiniz çıktıyı veriyor gibi gelmedi.
Verdiğiniz örüntüyü ya ben anlayamadım ya da örüntü düzensiz. Önce sayının karesi, sonra satırdaki sayı sayısı olsun diyorsunuz ama ilk satır bu düzeni baştan patlatıyor. 0'ın karesi 0, bir tane sayı bulunduğu için de yanında 1 yazması lazım. Hadi 1'den başlasın istiyorsunuz, bu sefer ilk satırın 1 1 olması gerekiyor. İlk sayının karesi + satırdaki sayı sayısı örüntüsü ancak böyle sağlanıyor.
0 da dahil olacak şekilde şöyle yazdım ben, 0'ı istemezseniz düzenleyebilirsiniz:
Python:
value = int(input("Provide a value: "))
for i in range(1, value + 1):
nums = [j*j for j in range(i)]
output = " ".join(str(i) for i in nums) + " " + str(i)
print(output)
"n" değerini kullanıcı sanırım değiştirir diye default 5 girmişim sanırım böyle bir hata var kodumda. Bu şekilde sanırım daha düzgün, direkt "n" değerini kullanıcıya baştan girmesini istiyor, "n" değerini atıyorum 7 olarak girersek şu şekilde bir örüntü oluyor, en azından ben böyle anladım;
n = int(input("değeri girin: "))
for i in range(1, n+1):
line = " ".join([str(i**2) for j in range(i)])
line = " ".join([str(i) for j in range(i)]) + " " + line
print(line)
Örüntünün sıfırdan başlamasını istiyorsa range değerinin başlangıç değerini 0 yapması yeterli,
Python:
for i in range(0, n)
fakat bundan sonra örüntü istenilen şekilde mi oluyor yoksa olmuyor pek anlamadım açıkçası.
@Uton benim anladığım şu: Kodu çalıştıran kişi bir sınır değeri belirleyecek, misal 7. Kod da her satıra 1'den başlayıp sınır değerine kadar giden sayıların karelerini çıkartacak, satırın sonuna da o satırda kaç sayı kullanıldığını yazacak. Karesi yazılan sayı miktarı her satırda bir artacak, ta ki elde sayı kalmayana kadar. 1'den başlaması için biraz düzenledim:
Python:
value = int(input("Provide a value: "))
for i in range(1, value + 1):
nums = [j*j for j in range(1, i+1)]
output = " ".join(str(i) for i in nums) + " " + str(i)
print(output)