Track
/
PHP
PHP
/
Esercizi
/
Chicchi di grano
Chicchi di grano

Chicchi di grano

Medio

Introduzione

C'era una volta un servo saggio che salvò la vita a un principe. Il re promise di pagare qualunque cosa il servo avesse potuto immaginare. Sapendo che il re amava gli scacchi, il servo disse al re che avrebbe voluto dei chicchi di grano. Un chicco sulla prima casella di una scacchiera, con il numero di chicchi che raddoppia a ogni casella successiva.

Istruzioni

Calcola il numero di chicchi di grano su una scacchiera.

Una scacchiera ha 64 caselle. La casella 1 ha un chicco, la casella 2 ha due chicchi, la casella 3 ha quattro chicchi, e così via, raddoppiando ogni volta.

Scrivi il codice che calcola:

  • il numero di chicchi su una data casella
  • il numero totale di chicchi sulla scacchiera

Valore intero massimo

Secondo la documentazione di PHP esiste un valore intero massimo:

La dimensione di un int dipende dalla piattaforma, anche se il valore massimo usuale è di circa due miliardi (ovvero 32 bit con segno). Le piattaforme a 64 bit di solito hanno un valore massimo di circa 9E18. PHP non supporta gli int senza segno.

In altre parole, PHP non può esprimere come intero alcun numero maggiore o uguale a 2^63. Alcuni test di questo esercizio richiedono interi a 64 bit (2^64), che vanno oltre il limite di dimensione degli interi di PHP.

PHP converte automaticamente gli int in float, quando i numeri diventano troppo grandi:

Se PHP incontra un numero oltre i limiti del tipo int, questo verrà interpretato come un float. Inoltre, un'operazione che produce un numero oltre i limiti del tipo int restituirà un float.

Ma il tipo float ha una precisione limitata. E il re odia l'imprecisione. Così il re ha deciso di aspettarsi i risultati dei calcoli come stringa che esprime il valore intero, invece di esprimere la risposta come int o float. E vuole calcoli con numeri interi, non una semplice conversione pigra alla fine.

Riesci a risolverlo evitando i numeri più grandi di quelli che il linguaggio permette direttamente? E per favore non usare neanche altre librerie PHP come gmp o bc.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
PHP Exercism

Vuoi iniziare Chicchi di grano?

Iscriviti a Exercism per imparare e padroneggiare PHP con 11 concetti122 esercizi e il mentoring di persone reali, tutto gratis.