Arka fon
Eşit büyüklükte bir grup kare şekilli kutum var ve düzgün bir insan olduğumdan, hepsini kare bir forma yerleştirmek istiyorum. Ancak, sayıları mutlaka mükemmel bir kare değildir, bu yüzden kare şeklini yaklaşık olarak tahmin etmek zorunda kalabilirim. En estetik açıdan en hoş düzenlemeyi bulmanı istiyorum - tabii ki programlı olarak.
Giriş
Girişiniz k
kutu sayısını temsil eden tek bir pozitif tam sayıdır .
Çıktı
Programınız iki pozitif tamsayılar seçecektir m, n
şekilde m*(n-1) < k ≤ m*n
tutar. Düzenlediğimiz büyük kare benzeri şeklin genişliğini ve yüksekliğini temsil ediyorlar. Estetik açıdan hoş şekiller aradığımız için miktar minimum olacak, böylece şekil bir kareye yakın ve alanı yakın olacak . Çift için hala birkaç aday varsa , genişliğin en fazla olduğu adayı seçin .(m - n)2 + (m*n - k)2
k
(m, n)
m
Şimdi, gerçek çıktı eder değil numaralarını olmak m
ve n
. Bunun yerine, #
bir kutuyu temsil eden karakteri kullanarak kutuların düzenini yazdırmalısınız . Daha spesifik olarak, n-1
her biri m
karakterlerden oluşan satırlar #
ve ardından bir k - m*(n-1)
karakter satırı yazdırırsınız #
. Çıktının tam olarak k
karakterler içerdiğini unutmayın #
.
Kurallar ve Puanlama
Çıktıda herhangi bir ön veya arka boşluk olmamalıdır, ancak son satır m
istenirse uzunluğunda boşluk olacak şekilde doldurulabilir . Sonunda bir satırsonu olabilir, ancak bir satırsonu yoktur. #
İstenirse, herhangi bir yazdırılabilir ASCII karakteri kullanabilirsiniz .
Tam bir program yazabilir veya bir işlevden dize döndürebilirsiniz. En düşük bayt sayısı kazanır ve standart boşluklara izin verilmez.
Test Durumları
Birkaç giriş değeri için doğru çıkışlar.
1
#
2
##
3
##
#
4
##
##
8
###
###
##
13
#####
#####
###
17
######
######
#####
18
#####
#####
#####
###
20
#####
#####
#####
#####
21
######
######
######
###
22
######
######
######
####
23
#####
#####
#####
#####
###