En Büyük Toplamlı Rakamlardan Kare


9

Girdilerin bir listesini girdi ve çıktı olarak alan veya bu sayıları bir kareye koyarak elde edilebilen en büyük toplamı döndüren bir program veya işlev yazmalısınız.

Giriş her zaman kare sayıda basamak içerecektir. Girdi için örnek bir kare düzenleme 9 1 2 3 4 5 6 7 7olabilir

677
943
125

Toplam, tüm satır ve sütunların toplamı olarak hesaplanır. Yukarıdaki düzenleme için toplam olacaktır 677 + 943 + 125 + 691 + 742 + 735 = 3913. Bunun maksimum toplam olmadığını, bu nedenle beklenen çıktı olmadığını unutmayın.

Giriş

  • Sıfır olmayan rakamlar ( ) içeren length n^2( n>=1) içeren bir liste 1-9.

Çıktı

  • Bir tamsayı, kareye yerleştirilen giriş rakamlarıyla elde edilebilen en büyük toplam.

Örnekler

Örnek biçim input => output.

5 => 10

1 2 3 4 => 137

5 8 6 8 => 324

9 1 2 3 4 5 6 7 7 => 4588

2 4 9 7 3 4 2 1 3 => 3823

8 2 9 4 8 1 9 3 4 6 3 8 1 5 7 1 => 68423

5 4 3 6 9 2 6 8 8 1 6 8 5 2 8 4 2 4 5 7 3 7 6 6 7 => 836445

Bu kod golf yani en kısa giriş kazanır.


Sadece iki kez kontrol etmek için, girdinin tam olarak boşlukla ayrılmış basamaklar olması gerekir mi yoksa açık bir liste formatı iyi mi?
Sp3000

@ Sp3000 Seçtiğiniz dilin liste biçimi de dahil olmak üzere herhangi bir basit belirsiz liste biçimi uygundur.
randomra

Yanıtlar:


4

Pyth, 15 bayt

s*VSsM^^LTUQ2SQ

Gösteri. Kablo demetini test edin.

Not: a,b,c,veya gibi herhangi bir python dizisi biçiminde giriş yapın [a, b, c]. Başarısız a.

Bu örnek girdi için bir açıklama olacaktır 5,8,6,8.

^LTUQ: Bu, 10 uzunluğundaki güçlerin listesidir Q. [1, 10, 100, 1000].

^ ... 2: Sonra 10 çift güç alıyoruz [[1, 1], [1, 10], ....

sM: Sonra, bu çiftleri topluyoruz. [2, 11, 101, ...Her sayı bir ızgara konumunun değerini temsil eder. Sağ alt köşenin değeri 2'dir, çünkü oraya yerleştirilen rakam, içinde bulunduğu iki sayının birler noktasındadır. Sadece 4'e ihtiyacımız olsa bile 16 değerin üretildiğini unutmayın. Bu kısa bir süre içinde ele alınacaktır.

S: Değeri artan sırada sıralayın. [2, 11, 11, 20, 101, .... Bu kareyle ilgili olan tek değerin ilk 4 olduğunu unutmayın, çünkü bu karede yüzlerce veya binlerce yer olmayacaktır.

SQ: Girişi artan düzende sıralayın. [5, 6, 8, 8]

*V: İki liste üzerinde vektörize çarpma. Pyth'in vektörize çarpımı daha uzun girişi keser, böylece bu [5*2, 6*11, 8*11, 8*20], ızgarayı doldurmaya eşdeğer, en küçükten büyüğe, sağdan sağa sola doğru yapar.

sSonuçları topla 324,. Yazdırma kapalı.


4

CJam, 23 bayt

q~$_,mQ,A\f#2m*::+$.*:+

Çevrimiçi deneyin . Her hücre için ağırlık üretir ve en yüksek rakamları en yüksek ağırlıklara atar.

Alternatif 23:

q~$_,mQ_,A\f#*_$.+$.*:+

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.