Bu meydan okumada, iki özelliği yerine getiren herhangi bir işlevi (veya tam programı) uygulamanız istenecektir. Bu özellikler:
İşleviniz, negatif olmayan tamsayı katsayıları olan polinomlardan negatif olmayan tamsayılara kadar yerinde olmayan (tersinir) bir işlev olmalıdır. Bu, iki eşit olmayan girişin eşit bir çıkışla eşlenemeyeceği anlamına gelir.
Fonksiyonunuz girişinden çıkışına kadar olan toplam "bit" sayısını korumalıdır. Bu, polinomun her katsayısının 1 bitini sayarsanız, toplamlarının, çıktının ikili gösterimindeki 1 bit sayısıyla aynı olması gerektiği anlamına gelir. Örneğin ikiliktir
9
,1001
bu yüzden 21
biti vardır.
IO
Negatif olmayan bir tamsayı polinomu, negatif olmayan tamsayıların sonsuz bir listesiyle aynıdır, böylece belirli bir noktadan sonra tüm tamsayılar sıfır olur. Böylece, polinomlar ya sonsuz listelerle (bu muhtemelen istenmese de) ya da listenin bitiminden sonra örtük sıfırlar içeren sonlu listelerle temsil edilebilir.
Polinomlar ve sonlu listeler arasındaki temel ayrım, listenin sonuna sıfır eklenmesinin listeyi değiştirmesidir:
Bir polinomun sonuna sıfır eklenirken değeri değişmez:
Dolayısıyla, işleviniz girdi olarak bir polinomu temsil eden sonlu bir liste alıyorsa, sıfır eklemek sonucunu değiştirmemelidir.
Polinomları liste olarak temsil ederken, bunları sabit terimi temsil eden ilk veya son girişle temsil edebilirsiniz. Örneğin, aşağıdaki olasılıklardan birine sahip olabilirsiniz:
İlk durumda, listenin sonuna sıfırlar eklemek sonucu değiştirmemelidir; ikinci durumda, listenin önüne sıfırlar eklemek sonucu değiştirmemelidir.
Tabii eğer diliniz polinomları destekliyorsa, bunları girdi olarak alabilirsiniz.
Çıktı, herhangi bir standart yöntemle negatif olmayan bir tamsayı çıktısı olmalıdır.
Bu kod golf, bu yüzden cevaplar bayt cinsinden puanlanacak, daha az bayt daha iyi olacak.
[]
yoksa[0]
geçerli bir girdi?