4 durumlu barkodlar
Pek çok posta hizmeti (Royal Mail İngiltere, Kanada Posta, ABD Posta vb.), Postalarıyla ilgili bilgileri kodlamak için 4 durumlu bir barkod kullanır. ASCII'de oluşturulmuş, şuna benzer bir şey olabilir:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
4 durumlu barkod, bir satır çubuktur. Her çubuk, 4 olasılık sağlayacak şekilde yukarı, aşağı veya her ikisine de genişletilebilir. Bu, her bir çubuğun temel olarak 4 basamaklı bir basamağı temsil ettiği anlamına gelir:
| | Bar: | | | | | | Rakam: 0 1 2 3
Bu sembolojideki sorun, her bir barkodun baş aşağı geçerli, farklı bir barkod olmasıdır: yönelim yanlışsa, anlamını büyük ölçüde değiştirir. Bu nedenle, normalde bir başlatma ve durdurma dizisi uygulanır, böylece tarayıcı okunması gereken yolu hesaplayabilir.
Bu zorluğun amacı için, Avustralya Post tarafından belirtilen start / stop dizisini kullanacağız: her barkod bir 1 0
diziyle başlar ve biter .
Meydan okuma
Göreviniz, pozitif bir tamsayı verilen N
, onu ASCII 4 durumlu bir barkoda dönüştüren bir program veya işlev yazmaktır ; burada her çubuk (başlangıç / durdurma dizileri hariç) temel 4 temsilinde bir basamağı temsil eder N
.
Örnek:
Tamsayı göz önüne alındığında, 19623
ilk önce onu temel 4 temsili haline dönüştürürüz 10302213
.
Daha sonra her basamağı ilgili çubuğa eşlerdik:
1 0 3 0 2 2 1 3 | | | | | | | | | | | | | | | |
Son olarak, start / stop dizilerini ekleyeceğiz:
Başlangıç: Bitiş: 1 0 1 0 | | | | | | | | | | | | | | | | | | | | | |
Çıkan barkod programın çıktısı olmalıdır.
Kurallar:
- Girdi, dilinizin standart tamsayı boyut aralığında, pozitif bir tamsayı olacaktır.
- Çıktı:
- Bir satır listesi veya yeni satırlar içeren bir dize olabilir.
- Şekil bozulmadan kaldığı sürece, önde gelen veya sondaki yeni satırları / boşlukları içerebilir.
- Barkodu yukarıdaki formatta göstermelidir - çubuk çizerken boru karakterini (
|
) ve boşluk karakterini () kullanmalı ve her dik çubuk arasında 1 boşluk olmalıdır.
- Bu kod golf , yani en kısa program (bayt cinsinden) kazanır!
Test Kılıfları
4095:
| | | | | | | | | | | | | | | | | | | | | | | |
4096:
| | | | | | | | | | | | | |
7313145:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |