ASCII sanatı ile uzun bölümü görselleştiren bir program yazın. Giriş, seçtiğiniz girdi biçimini kullanan bir pay ve bir payda olmak üzere iki tamsayıdan oluşur.
Örnekler:
1234 ÷ 56:
22
----
56|1234
112
---
114
112
---
2
1002012 ÷ 12:
83501
-------
12|1002012
96
---
42
36
--
60
60
--
12
12
--
0 ÷ 35
0
-
35|0
Kurallar:
- Programlama dilinin bölüm operatörünün kullanımına izin verilir.
- Büyük tamsayı desteğinin kullanımına da izin verilir.
- Tutarlılık için:
- Bölüm sıfırsa, tramplenin sonuna tek bir sıfır yazdırın.
- Kalan sıfır ise yazdırmayın.
- Baştaki sıfırları hiçbir sayıya yazdırmayın.
- Sonda fazladan yeni satırlara ve sağda sondaki boşluklara izin verilir.
- En az karakter içeren çözüm kazanır.
Sınırları:
- 0 <= payı <10 72 - 1
- 1 <= payda <= 9999999
Bu, çıktının asla 80 sütundan daha geniş olmayacağı anlamına gelir.
Test takımı ve örnek uygulama:
Sen kullanabilirsiniz uzun division.c ( özü programınızı test etmek). Aslında içinde bir C programı olan bir bash betiğidir. Programınızı test paketinde çağırmak için düzenleyin. Referans uygulamasını görmek için alttaki C koduna bakın. Örnek program veya test paketiyle ilgili herhangi bir sorun olup olmadığını lütfen bize bildirin.
$ ./long-division.c 10 7
1
--
7|10
7
--
3
$ ./long-division.c
PASS 1234 ÷ 56
PASS 1002012 ÷ 12
PASS 1 ÷ 1
--- snip ---
Score: 35 / 35
All tests passed!
Düzenleme: İstek üzerine, test paketi girişi ve beklenen çıktıyı metin dosyalarına ( gist ) koydum . Örnek kullanım (bash):
cat input | while read nd; do
./program $nd |
sed 's/\s*$//' | sed -e :a -e '/^\n*$/{$d;N;};/\n$/ba'
done > output
diff -u expected output
Garip sed komutları, sondaki satırları ve boşlukları program çıktısından filtreler.