Tous les défis
Facile 0 résolus 0 % de réussite

Doublement des grains sur un échiquier

Calculez le nombre de grains sur une case et le total sur les 64 cases.

La case 1 contient un grain. Chaque case suivante contient deux fois plus de grains que la case précédente. Retournez à la fois le nombre de grains sur la case demandée et le total sur les cases 1 à 64. Écrivez chaque nombre sous forme de texte décimal, car le total de l'échiquier dépasse la capacité d'un entier signé 64 bits.

Implémentez chessboard_grains(square).

Entrée

square : La case demandée, numérotée à partir de 1.

Sortie

Retournez deux chaînes décimales : [nombre de grains sur la case demandée, total sur les 64 cases].

Contraintes

1 ≤ square ≤ 64. Les chaînes de sortie ne contiennent que des chiffres décimaux, sans virgules, espaces ni zéros initiaux.

Exemples

Exemple 1
Entrée :
square = 6

Sortie attendue :
expected = ["32", "18446744073709551615"]
Entrée :
long long square = 6;

Sortie attendue :
std::vector<std::string> expected = {"32", "18446744073709551615"};
Entrée :
long square = 6;

Sortie attendue :
string[] expected = new string[] {"32", "18446744073709551615"};

Explication

Les six premiers nombres sont 1, 2, 4, 8, 16, 32. Le total de l'échiquier est 1 + 2 + … + 2⁶³ = 2⁶⁴ − 1.

Exemple 2
Entrée :
square = 1

Sortie attendue :
expected = ["1", "18446744073709551615"]
Entrée :
long long square = 1;

Sortie attendue :
std::vector<std::string> expected = {"1", "18446744073709551615"};
Entrée :
long square = 1;

Sortie attendue :
string[] expected = new string[] {"1", "18446744073709551615"};

Explication

La première case contient 1 grain. Le second résultat fait toujours référence à l'ensemble des 64 cases, et non à un simple préfixe.

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.