Gabonaszemek

Gabonaszemek

Közepes

Bevezetés

Volt egyszer egy bölcs szolga, aki megmentette egy herceg életét. A király megígérte, hogy megadja neki mindazt, amit a szolga csak kigondol. A szolga tudta, hogy a király szeret sakkozni, ezért azt kérte tőle, hogy búzaszemeket kapjon. Egy szem a sakktábla első mezőjén, a szemek száma pedig minden következő mezőn megduplázódik.

Utasítások

Számítsd ki, hány búzaszem van egy sakktáblán.

A sakktábla 64 mezőből áll. Az 1. mezőn egy szem van, a 2. mezőn kettő, a 3. mezőn négy, és így tovább, minden mezőn megduplázódik a szemek száma.

Írj kódot, amely kiszámítja:

  • az adott mezőn lévő szemek számát
  • a sakktáblán lévő szemek összes számát

Maximális egészérték

A Vim dokumentációja szerint:

Feltéve, hogy 64 bites számokat használunk (lásd v:numbersize), egy előjel nélküli szám 0x7fffffffffffffff vagy 9223372036854775807 értékre csonkolódik.

Más szóval, a Vim script nem tud 2^63 vagy annál nagyobb számot egész számként kifejezni.

A feladat néhány tesztje 64 bites egészeket igényel, ami meghaladja a Vim script egészekre vonatkozó méretkorlátját. Emiatt a korlát miatt a számítások eredményeit egy olyan stringhez hasonlítják, amely az egészértéket fejezi ki, ahelyett, hogy a választ Integer-ként fejeznék ki. Meg tudod oldani ezt úgy, hogy elkerülöd a nyelv által közvetlenül megengedettnél nagyobb számokat?

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Vim script Exercism

Készen állsz elkezdeni a(z) Gabonaszemek feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Vim script nyelvet 89 feladat segítségével, valódi emberi mentorálással, mindez ingyen.