Yeni Modern Zamanlarda , Charlie Chaplin bir bilgisayarla karşılaştığında, işçilerin eşyaları doğru bir şekilde sıralayıp sıralamadıklarını belirlemek için tasnif görevlisi olarak tasnif bahçesinde çalışıyor. Söz konusu eşyalar mermerler paketidir. Tek Sayıda Mermerli Paketler Kırmızı Sepette, Çift Mermerli Paketler Mavi Sepette Yığınlanır.
Charlie Chaplin'in, sıralama prosedüründe herhangi bir anormallik olup olmadığını doğrulayacak programı delmesi gerekiyor . Hemen patronu Mack Swain, kodlaması gereken bir algoritmayı paylaşıyor.
Algoritma
L = List of Marble packets that's already sorted
L_ODD = List of packets with Odd Number of Marbles
L_EVEN = List of packets with Even Number of Marbles
Check_Digit = √(ΣL_ODD² + ΣL_EVEN²)
İşi Check_Digit'i belirlemek ve Patronunun hesapladığı değerle eşleştirmektir.
Charlie Chaplin öğle saatlerinde Mack Swain'in çekmecesine gizlice girebildi ve çekmecesinin ilk 46 32 sütunda yumruklu tek bir kartı olduğunu belirledi (yani Mack sadece 46 32 karakterli bir program yazabildi ).
Charlie Chaplin'in mümkün olduğunca az satır içeren bir program yazmak için ninja'nın tüm kodunun yardımına ihtiyacı olacaktır. Birisi Patronundan daha kısa bir program bulabilirse, 50 puanlık bir bonus açıklar.
özet
Bir liste / dizi / vektör pozitif sayılar (tek ve çift) verildiğinde, listedeki array(int [])/vector<int>/list
tek ve çift sayıların toplamlarının karelerinin toplamının kökünü hesaplayan ve hesaplayan bir işlev yazmanız gerekir .
Programın boyutu, işlev gövdesinin boyutudur, yani işlev imzasının boyutu hariç.
Misal
List = [20, 9, 4, 5, 5, 5, 15, 17, 20, 9]
Odd = [9, 5, 5, 5, 15, 17, 9]
Even = [20, 4, 20]
Check_Digit = √(ΣOdd² + ΣEven²) = 78.49203781276162
Gerçek çıktının uygulamanın kayan nokta hassasiyetine bağlı olarak değişebileceğini unutmayın .
Puan
Puan olarak hesaplanır Puan olarak hesaplanır Σ(Characters in your Program) - 46
. Σ(Characters in your Program) - 32
. Topluluktan yapılan düzenli yükselişin yanı sıra, en düşük negatif puan 50 puan ek bonus kazanacaktır.
Düzenle
- Skoru hesaplamak için kullanılan ofset 46'dan 32'ye değiştirildi. Not, bu durum liderlik kurulu / ödül uygunluğunu etkilemez veya herhangi bir çözümü geçersiz kılmaz.
Karar
Ninjalar arasındaki korkunç bir düellodan sonra, Bay Chaplin bazı harika cevaplar aldı. Maalesef cevapların çok azı kuraldan gereksiz bir şekilde yararlanmaya çalıştı ve çok yararlı olmadı. Aslında adil bir düello istedi ve mantığın fonksiyon imzaları içinde kodlandığı yere cevaplar sonunda fonksiyon imzasının çözümün ayrılmaz bir parçası olduğu anlamına gelecektir. Sonunda, Ninja FireFly açık bir kazanan oldu ve ona hak ettiği bonusu verdi. Büyük Afiş (her gün güncellenir)
╒══════╤═════════════════╤══════════════╤═════════╤════════╤═══════╕
├ Rank │ Ninja │ Dialect │ Punches │ Scores │ Votes ┤
╞══════╪═════════════════╪══════════════╪═════════╪════════╪═══════╡
│ 0 │ FireFly │ J │ 17 │ -15 │ 6 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 1 │ tmartin │ Kona │ 22 │ -10 │ 2 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 2 │ Sven Hohenstein │ R │ 24 │ -8 │ 7 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 3 │ Ben Reich │ GolfScript │ 30 │ -2 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 4 │ mollmerx │ k │ 31 │ -1 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 5 │ David Carraher │ Mathematica │ 31 │ -1 │ 3 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 6 │ tmartin │ Q │ 34 │ 2 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 7 │ daniero │ dc │ 35 │ 3 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 8 │ psion5mx │ Python │ 38 │ 6 │ 2 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 9 │ O-I │ Ruby │ 39 │ 7 │ 5 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 10 │ gggg │ Julia │ 40 │ 8 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 11 │ FakeRainBrigand │ LiveScript │ 50 │ 18 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 12 │ Sylwester │ Perl5 │ 50 │ 18 │ 2 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 13 │ daniero │ Ruby │ 55 │ 23 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 14 │ vasuakeel │ Coffeescript │ 57 │ 25 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 15 │ dirkk │ XQuery │ 63 │ 31 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 16 │ crazedgremlin │ Haskell │ 64 │ 32 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 17 │ Uri Agassi │ Ruby │ 66 │ 34 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 18 │ Sumedh │ JAVA │ 67 │ 35 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 19 │ Danny │ Javascript │ 67 │ 35 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 20 │ deroby │ c# │ 69 │ 37 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 21 │ Adam Speight │ VB │ 70 │ 38 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 22 │ Andrakis │ Erlang │ 82 │ 50 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 23 │ Sp0T │ PHP │ 85 │ 53 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 24 │ brendanb │ Clojure │ 87 │ 55 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 25 │ Merin Nakarmi │ C# │ 174 │ 142 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 26 │ Boopathi │ JAVA │ 517 │ 485 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 27 │ Noyo │ ES6 │ ? │ ? │ 2 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 28 │ shiona │ Haskell │ ? │ ? │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 29 │ Vivek │ int │ ? │ ? │ 0 │
└──────┴─────────────────┴──────────────┴─────────┴────────┴───────┘