Meydan okuma:
Pozitif sıfır olmayan bir tam sayı girdisini alan ve sonraki 4 sırayı aşağıda açıklanan sırayla veren bir program oluşturun.
Not: Girişin gerçekten sıfır dışında bir tam sayı olup olmadığını kontrol etmek gerekli değildir
Sıra:
Bu dizideki her sayı (girdi olan ilk sayı dışında) n basamaktan oluşacaktır, burada n çift sayıdır. Sayıyı n / 2 çiftine böldüğümüzde, her bir çift için ilk basamak, ikinci basamağın bir önceki sayıda kaç kez göründüğü olmalıdır
Görsel açıklama :
Bu örneği "dizi başlatıcı" veya giriş olarak düşünün Dizideki bir 6577
sonraki sayı şöyle görünmelidir 161527
Çünkü giriş 1 "6", 1 "5" ve 2 "7" s'dir.
Eğer giriş çok fazla basamağa sahipse (tek bir basamağın 9'dan fazla) doğru çıkış elde edemezsiniz
Örnek: 111111111111
(12 1'ler)
Sıradaki sonraki sayı 12 1'leri tanımlamak zorundadır. Böylece onu 9 1 ve 3 1'lere ayırdık (toplam 9 + 3 = 12)
Sonraki sayı:9131
Giriş için 4 kez yinelemeli ve çıktı vermelisiniz (4 tamsayıdan oluşan bir liste / dizi döndürmeli ya da bir boşlukla ayırarak çıktı vermelisiniz, yeni satırlar da kabul edilebilir)
"Sayı birçok şekilde yazılabilir, nasıl yazarım?" :
Bunu düşünürseniz, örnek girdi 6577
de 271516 (iki 7, bir 5, bir altı) olarak yazılabilir. Ancak bu geçersiz bir çıktıdır. Soldan sağa sayıyı yinelemelisiniz. Böylece 161527. Eğer 7'sini 7657
tekrarlarsanız, o zaman 6'ların miktarı sonra 5'lerin miktarını tekrarlarsınız, böylece geçerli çıktı271615
Örnek G / Ç:
Giriş: 75
Çıkış:1715 211715 12311715 4112131715
Giriş: 1
Çıkış:11 21 1211 3112
Giriş: 111111111111
(12 1's)
Çıkış:9131 192113 31191213 23411912
Bu, "Ne gördüğünüzü söyle" sorusunun aksine, sekanslar farklı olduğu için: https://oeis.org/A005150 <- Bu, bunun gibi sayıları döndürür:
Giriş: 1211 Çıktı: 111221 İstediğim
sıra yapacağını
Giriş: 1211 Çıktı: 3112
İki sekans farklıdır ve farklı algoritmalar gerektirir.
Sorulan dizilim: https://oeis.org/A063850
"Olası kopya" dizisi: https://oeis.org/A005150
Önemli özellikler:
Bu soruyu cevaplamaya çalışan bazı insanlar için yeterince açık olmadığından, k> 9'un "kc" (c'nin char olduğu) değil, 9c (k-9) c vb. Olduğu k karakterleri için doğru çıktı. 12 1'ler 121
(12 1) değil 9131
(9 1'ler, (12-9) 1'ler vb.)
Şüpheniz varsa, kodunuz tek bir rakam (121 gibi) içeren bir sayı çıkarıyorsa yanlıştır, dizinin doğası gereği çift haneli sayıların çıktısına sahip olmalıdır.
Bu kod golf yani en az bayt kazanır kod.
23411912
yerine değil 23411219
mi?
1111111111111111111
(19 1'ler )