Jogos de tabuleiro são atividades comuns de entretenimento na vida cotidiana das pessoas. Uma de suas características é a necessidade do uso de um tabuleiro com localizações bem definidas para o posicionamento de peças, podendo indicar também as fases do jogo. No livro 0 Homem que Calculava, de Malba Tahan (São Paulo: Record, 2002, p.120), há uma história na qual um rei deveria efetuar o pagamento pelos serviços de um de seus conselheiros, dando-lhe uma certa quantidade de grãos de trigo a ser calculada da seguinte forma: coloca-se 1 grão de trigo na primeira casa do tabuleiro, 2 na segunda casa, 4 na terceira casa, 8 na quarta casa e assim dobrando-se sucessivamente até a última casa.
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Considerando o tabuleiro |c|c|c|c| hline 1 & 2 & 3 & 4 hline 5 & 6 & 7 & 8 hline 9 & 10 & 11 & 12 hline 13 & 14 & 15 & 16 hline ilustrado acima, contendo a indicação da ordem das casas, construa um único algoritmo que:
Calcule, armazene em uma estrutura e escreva em ordem a quantidade de grãos de trigo em cada casa do tabuleiro;

Passo 1

Beleza, vamos entender o que a questão pede. Temos um tabuleiro de 4x4 casas, totalizando 16 casas. A ideia é colocar grãos de trigo nas casas de forma que cada casa tenha o dobro da quantidade da casa anterior. Isso é uma progressão geométrica onde cada termo é multiplicado por 2. Para resolver isso, vamos precisar calcular a quantidade de grãos em cada casa, armazenar esses valores em uma estrutura de dados (como uma lista) e depois imprimir esses valores na ordem das casas.

Passo 2

Primeiro, vamos identificar a quantidade de grãos em cada casa. A primeira casa tem 1 grão. A segunda casa tem 2 grãos (1x2), a terceira tem 4 grãos (2x2), e assim por diante. A fórmula geral para a quantidade de grãos na Gn = 2^(n-1) -ésima casa é:
Onde é a quantidade de grãos na casa .

Passo 3

Agora, vamos calcular os grãos para cada uma das 16 casas usando a fórmula acima:
G1 &= 2^0 = 1 G2 &= 2^1 = 2 G3 &= 2^2 = 4 G4 &= 2^3 = 8 G5 &= 2^4 = 16 G6 &= 2^5 = 32 G7 &= 2^6 = 64 G8 &= 2^7 = 128 G9 &= 2^8 = 256 G10 &= 2^9 = 512 G11 &= 2^10 = 1024 G12 &= 2^11 = 2048 G13 &= 2^12 = 4096 G14 &= 2^13 = 8192 G15 &= 2^14 = 16384 G16 &= 2^15 = 32768

Passo 4

Vamos armazenar esses valores em uma estrutura de dados. A maneira mais simples é usar uma lista onde cada índice representa a casa do tabuleiro. Por exemplo, o índice 0 da lista será a casa 1, o índice 1 será a casa 2, e assim por diante.
grãos = []
for n in range(1, 17):
    grãos.append(2**(n-1))

Passo 5

Finalmente, vamos imprimir a quantidade de grãos em cada casa na ordem correta. Podemos percorrer a lista e imprimir cada valor juntamente com o número da casa.
for i, quantidade in enumerate(grãos, start=1):
    print(f"Casa {i}: {quantidade} grãos de trigo")

Resposta

A quantidade de grãos de trigo em cada casa do tabuleiro é:
Casa 1: 1 grão de trigo
Casa 2: 2 grãos de trigo
Casa 3: 4 grãos de trigo
Casa 4: 8 grãos de trigo
Casa 5: 16 grãos de trigo
Casa 6: 32 grãos de trigo
Casa 7: 64 grãos de trigo
Casa 8: 128 grãos de trigo
Casa 9: 256 grãos de trigo
Casa 10: 512 grãos de trigo
Casa 11: 1024 grãos de trigo
Casa 12: 2048 grãos de trigo
Casa 13: 4096 grãos de trigo
Casa 14: 8192 grãos de trigo
Casa 15: 16384 grãos de trigo
Casa 16: 32768 grãos de trigo

Exercícios relacionados