Göreviniz, bir sayının diğeri tarafından bölünebilir olup olmadığını belirleyen bir program veya işlev yazmaktır. Yakalama, sayının tüm rakamları verilmemiş olsa bile , mümkün olan en kısa zamanda bir cevap vermesi gerektiğidir .
Programınız D D 2 tamsayısını ve ardından girdi olarak bir dizi rakam almalıdır . Bunlar , en az anlamlı basamaktan başlayarak başka bir N ≥ 1 tamsayısının rakamlarını temsil eder . İlk aşamada olduğunu N ya gerekir veya olmamalıdır tarafından divisble olmak D , programınız çıkış gerektiği uygun bir cevap ve çıkış. Girişin sonuna ulaşılırsa, tam N'nin D ile bölünebilir olup olmadığı çıktı vermelidir .
N için kabul edilebilir giriş biçimlerinin bir listesi ( dahil edilmeyen bir şeye izin verilmesi gerektiğini düşünüyorsanız yorum bırakın):
Standart giriş : rakamlar ayrı satırlarda verilir; giriş sonu EOF veya özel bir değerdir; çıkış , işlevin geri döndüğü veya programın çıktığı anlamına gelir.
Analog giriş : örn. Her basamağı temsil eden tuş vuruşları veya on düğme aracılığıyla; giriş sonu özel bir değerdir; çıkış , işlevin geri döndüğü veya programın çıktığı anlamına gelir.
Küresel durum ile fonksiyon : art arda rakamlarla tekrar tekrar çağrılır; giriş sonu özel bir değerdir; çıkış , işlevin boş olmayan bir değer döndürdüğü anlamına gelir. Genel durumu kullanırsanız, bir değer döndürüldükten sonra silinmesi veya işlevin birden çok kez çalışacağı şekilde sıfırlanması gerekir .
Curried işlevi : bir sonraki basamakla ya da bir değerle çağrılacak başka bir işlevi döndürür; giriş sonu özel bir değerdir veya işlevi bağımsız değişken olmadan çağırır; çıkış , işlevin başka bir işlev yerine bir yanıt döndürdüğü anlamına gelir.
GUI istemi veya benzeri : tekrar tekrar görüntülenir; giriş sonu "iptal" veya eşdeğeri veya özel bir değerdir; çıkış , istemlerin görünmeyi durdurması anlamına gelir.
Yineleyici işlevi : girdi, çağrıldığında bir sonraki basamağı döndüren durum bilgisi olan bir nesne veya işlevdir; girdinin sonu bir istisna veya özel değerdir; çıkış , yineleyicinin çağrılmasını durdurduğu anlamına gelir.
D için giriş ve çıkış kabul edilebilir herhangi bir standart yöntemle yapılabilir .
Test senaryoları:
2; 6 => true
5; 6 => false
20; 0 3 => false
20; 0 4 => true
100; 1 => false
100; 0 0 => true
100; 0 2 => false
4; 2 4 => false
4; 2 5 => true
4; 2 [eof] => false
4; 4 [eof] => true
625; 5 5 => false
625; 5 7 2 => false
625; 5 7 3 6 => false
625; 5 7 3 4 => true
7; 9 3 4 [eof] => false
7; 9 3 4 5 [eof] => true
140; 0 3 => false
140; 0 4 5 [eof] => false
140; 0 4 5 1 [eof] => true
14; 4 5 1 4 [eof] => false
14; 4 5 1 4 1 [eof] => true
digits
EOF için özel bir değere sahip girdi olarak almakta bir sorun mu var?
[]
ve [2]
başka dönüş şey false
ya true
(vb fonksiyonu kendisi ... dahil) iken [2,3]
, [2,3,1]
ve [2,3,1,EOF]
dönüş true
. Küresel devlet seçeneğine çok yakın.