Pokemon GO Evrim Maliyet Hesaplama


11

Her zaman bu yüksek seviyeli gelişmeleri elde etmek için kaç tane Pokémon'a ihtiyacınız olduğunu merak etmekten bıktınız mı? Merak etmeyin! Şimdi sizin için hesaplamak için tam bir program veya işlev yazacaksınız!

Meydan okuma:

Girdi olarak, programınız bir Pokémon'u bir sonraki seviyeye dönüştürmek için şeker maliyetlerinin bir listesini alacaktır. (Bu liste, seçtiğiniz herhangi bir sınırlayıcıyla veya işlev bağımsız değişkenleri olarak ayrılabilir). Programınız, verilen tüm katmanlar arasında gelişmek için, geliştirilecek olan da dahil olmak üzere yakalanması gereken Pokémon sayısını döndürür veya yazdırır.

Bunu nasıl hesaplıyorsunuz? Gibi:
1. Tüm şeker maliyetlerini ekleyin: 12 + 50 = 62
2. Toplamdan 3 şeker çıkarın, bu gelişmeye devam ettiğiniz bir Pokémon'dan: 62 - 3 = 59
3. Bu sayıyı 4'e bölün (yakalamak için 3, vermek için 1 Profesör), her zaman ceil()sonucu alır: ceil(59/4) = 15
4. Son olarak, yakalamanız gereken toplam Pokémon sayısını elde etmek için bu toplama 1 ekleyin, 16!

Örnek Input -> Output:

[4] -> 2
[50] -> 13
[12, 50] -> 16
[25, 100] -> 32
[19, 35, 5, 200] -> 65

Kazanan:

Uygulama, telefonunuzdaki alanın çoğunu zaten kapladı, bu nedenle programınızın mümkün olduğunca kısa olması gerekiyor. En küçük bayt sayısına sahip tüm program veya işlev iki hafta içinde kabul edilecektir! (herhangi bir bağ en erken gönderilen giriş tarafından çözülür!)


3
Çıktı nasıl hesaplanır?
Leaky Nun

8
Gelecekte, zorluklarınızdaki karışıklıkları çözmek ve göndermeden önce geri bildirim almak için lütfen Sandbox'ı kullanın.
El'endia Starman

7
Kısa kod uzunluğu için biraz daha az saçma bir mantık istiyorsanız, "uygulama pilinizi neredeyse öldürdüğü için, kodunuzun mümkün olduğunca kısa olmasını istersiniz, böylece piliniz bitmeden önce yazabilirsiniz".
Mego

2
Formül olmamalı floor(Sum(L)/4)+1mı? Mevcut formül 4'e bölünebilir meblağlar için işe yaramıyor. Örneğin [400], 100'e dönecekti.
Emigna

6
Umarım birisi Go'da
Kodos Johnson

Yanıtlar:




5

Brain-Flak 112 bayt

([]<([()])>){{}({}{})([][()])}{}{({}[()])<>(({}[()()()]<({}())>)){{}(<({}()()()()<({}[()])>)>)}{}<>}{}<>{}({}())

Çevrimiçi Deneyin!

açıklama

Yığını toplar, birini çıkarır, dörde böler ve bir ekler.


Bunu çevrimiçi denemek için nasıl çalıştırabilirim? Denediğim herhangi bir giriş şeması için sadece 1 çıktısını alıyor.
orlp

1
İçin yanlış cevap verir [4].
orlp

@orlp Düzeltildi. Yanlış kodu çevrimiçi deneyin.
Ad Hoc Garf Hunter

3

C # REPL, 15 bayt

n=>n.Sum()/4+1;

İçin yayınlar Func<IEnumerable<int>, int>.


3

Aslında 4 bayt

Σ¼≈u

Çevrimiçi deneyin!

Açıklama:

Σ¼≈u
Σ     sum
 ¼    divide by 4
  ≈   floor
   u  add 1

1
Bu unicode karakterlerin her biri 2 bayt değil mi?
user23127

1
@ user23127 Bu UTF-8 ile kodlanmışsa, evet. Aslında (ve selefi Ciddi) CP437 kullanın.
Mego



2

BAŞ (sed + bc) 19

sed 's~)~+4)/4~'|bc

Girdi +stdin'de ayrı bir listedir
:
echo '(19+35+5+200)'| sed 's~)~+4)/4~'|bc





1

CJam, 7 bayt

{:+4/)}

Burada deneyin!

Yığındaki girdiyi bekleyen ve sonucu orada bırakan adsız bir blok tanımlar.
:+listeyi 4/toplar, sonucu 4'e böler ve bunu )artırır.




1

JavaScript, 29 Bayt

x=>x.reduce((a,b)=>a+b)/4+1|0

1

SILOS 100 99103 karakter + 22 örnek girişi için

Test kayışını kodlayın.

set 512 52
set 513 10
GOSUB e
GOTO f
funce
a = 0
i = 511
lblE
i + 1
b = get i
a + b
if b E
a / 4
a + 1
return
lblf
printInt a

512. noktadan başlayan yığının noktalarını değiştirmek için bir dizi komut kümesi olarak giriş yapın.
Çevrimiçi deneyin!


Pokemon Go'nun 8'den fazla evrim katmanı olmaması (aslında 3'te maksimum), larget test vakalarını ele almanız gerekmediği anlamına gelmez.
Mego

@ Spego açıkça pokemon go referansları ve böylece tüm girdilerin geçerli girdi olacağını varsayabiliriz. Gerçekten sıfır sentinel ile sonlandırılan satırsonu ayrılmış girdi işleyen çok daha iyi bir sürüm yayınladı, ama TIO şu anda kaplıdır
Rohan Jhunjhunwala

@Mego OP ile açıklığa kavuşmama izin verdi. Bu geçersizse, daha büyük test senaryoları için çalışmak üzere değiştirebilirim
Rohan Jhunjhunwala

Bu aslında standart bir boşluk - meydan okumada mevcut olmayan kurallar varsayıyorsunuz.
Mego

@Mego üç baytlık bir maliyetle değiştirildi, şimdi 1000 evrime kadar çalışmalı.
Rohan Jhunjhunwala

0

Python 2, 40 bayt

import math
lambda s:math.ceil(sum(s)/4)

Bu sum(s)bir tamsayı olduğu ve /her iki bağımsız değişken de tamsayı olduğunda Python 2'de tamsayı bölümü olacağı için bu çalışmaz .
Leaky Nun

@LeakyNun ne demek istiyorsun? benim için çalışıyor
acrolith

İçin yanlış cevap verir [4].
orlp
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.