Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

blacksaint

[Resolvido] antigo conto da rainha e monge

Recommended Posts

pessoal favor me ajudem, vi tópicos antigos sobre isso, mas o povo não postou o que tentou fazer querendo a vara a isca e o peixe... rs

 

Porém eu tô tentando fazer aqui a resposta dessa questão:

3) Uma rainha requisitou os serviços de um monge e disse-lhe que pagaria qualquer preço. O monge, necessitando de alimentos, indagou à rainha sobre o pagamento, se poderia ser feito com grãos de trigo dispostos em um tabuleiro de xadrez, de tal forma que o primeiro quadro deveria conter apenas um grão e os quadros subsequentes, o dobro do quadro anterior. A rainha achou o trabalho barato e pediu que o serviço fosse executado, sem se dar conta de que seria impossível efetuar o pagamento. Faça um algoritmo para calcular o número de grãos que o monge esperava receber.

 

fiz o seguinte usando visualG:

algoritmo "O monge e a Rainha"
// Função : 3) Uma rainha requisitou os serviços de um monge e disse-lhe que pagaria qualquer preço. 
//O monge, necessitando de alimentos, indagou à rainha sobre o pagamento, se poderia ser feito com 
//grãos de trigo dispostos em um tabuleiro de xadrez, de tal forma que o primeiro quadro deveria 
//conter apenas um grão e os quadros subsequentes, o dobro do quadro anterior. A rainha achou o 
//trabalho barato e pediu que o serviço fosse executado, sem se dar conta de que seria impossível 
//efetuar o pagamento. Faça um algoritmo para calcular o número de grãos que o monge esperava receber.
// Autor : Daniel Nogueira
// Data : 21/4/2011
// Seção de Declarações 
var
cont, totalgraos, somagraos:inteiro
inicio
// Seção de Comandos
cont<- 0
totalgraos<- 1
somagraos<- 0
           para cont de 1 ate <= 64 passo 1 faca
                 se (cont > 1) entao
                  //multiplica totalgraos x 2
                  totalgraos<- totalgraos*2
                  //soma o totalgraos e acumula com o somagraos
                  somagraos<- somagraos+totalgraos
                  fimse
                  escreval("Quadro do xadrez ", cont, " tem ", totalgraos, "Grãos.")
                  //acumula contador até chegar 64 para o looping para
                  cont<- cont+1
           fimpara
escreva("Serão pagos ", somagraos, " grãos.")
fimalgoritmo

 

O que eu queria saber é se este código está correto, pois quando a variavel "cont" chega em 31 ou 32 ela dá um erro escrito: integer overflow que traduzindo: Transbordamento de inteiros:

integeroverflow.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Sistemas 32 bit tem o máximo de inteiro com sinal entre -2147483648 e 2147483647"

você esta passando disso por isso transborda.

 

"Sistemas 32 bit tem o máximo de inteiro com sinal entre -2147483648 e 2147483647"

você esta passando disso por isso transborda.

o resultado é 18.446.744.073.709.551.615 de grãos de trigo ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Sistemas 32 bit tem o máximo de inteiro com sinal entre -2147483648 e 2147483647"

você esta passando disso por isso transborda.

 

"Sistemas 32 bit tem o máximo de inteiro com sinal entre -2147483648 e 2147483647"

você esta passando disso por isso transborda.

o resultado é 18.446.744.073.709.551.615 de grãos de trigo ;)

Então no visualG sem chance de ter esse resultado, só alterar a variavel soma e graos de inteiro para real?

var
cont:inteiro
totalgraos,somagraos:real

 

 

saida

Início da execução

Quadro do xadrez 1 tem 1Grãos.

Quadro do xadrez 2 tem 2Grãos.

Quadro do xadrez 3 tem 4Grãos.

Quadro do xadrez 4 tem 8Grãos.

Quadro do xadrez 5 tem 16Grãos.

Quadro do xadrez 6 tem 32Grãos.

Quadro do xadrez 7 tem 64Grãos.

Quadro do xadrez 8 tem 128Grãos.

Quadro do xadrez 9 tem 256Grãos.

Quadro do xadrez 10 tem 512Grãos.

Quadro do xadrez 11 tem 1024Grãos.

Quadro do xadrez 12 tem 2048Grãos.

Quadro do xadrez 13 tem 4096Grãos.

Quadro do xadrez 14 tem 8192Grãos.

Quadro do xadrez 15 tem 16384Grãos.

Quadro do xadrez 16 tem 32768Grãos.

Quadro do xadrez 17 tem 65536Grãos.

Quadro do xadrez 18 tem 131072Grãos.

Quadro do xadrez 19 tem 262144Grãos.

Quadro do xadrez 20 tem 524288Grãos.

Quadro do xadrez 21 tem 1048576Grãos.

Quadro do xadrez 22 tem 2097152Grãos.

Quadro do xadrez 23 tem 4194304Grãos.

Quadro do xadrez 24 tem 8388608Grãos.

Quadro do xadrez 25 tem 16777216Grãos.

Quadro do xadrez 26 tem 33554432Grãos.

Quadro do xadrez 27 tem 67108864Grãos.

Quadro do xadrez 28 tem 134217728Grãos.

Quadro do xadrez 29 tem 268435456Grãos.

Quadro do xadrez 30 tem 536870912Grãos.

Quadro do xadrez 31 tem 1073741824Grãos.

Quadro do xadrez 32 tem 2147483648Grãos.

Quadro do xadrez 33 tem 4294967296Grãos.

Quadro do xadrez 34 tem 8589934592Grãos.

Quadro do xadrez 35 tem 17179869184Grãos.

Quadro do xadrez 36 tem 34359738368Grãos.

Quadro do xadrez 37 tem 68719476736Grãos.

Quadro do xadrez 38 tem 137438953472Grãos.

Quadro do xadrez 39 tem 274877906944Grãos.

Quadro do xadrez 40 tem 549755813888Grãos.

Quadro do xadrez 41 tem 1099511627776Grãos.

Quadro do xadrez 42 tem 2199023255552Grãos.

Quadro do xadrez 43 tem 4398046511104Grãos.

Quadro do xadrez 44 tem 8796093022208Grãos.

Quadro do xadrez 45 tem 17592186044416Grãos.

Quadro do xadrez 46 tem 35184372088832Grãos.

Quadro do xadrez 47 tem 70368744177664Grãos.

Quadro do xadrez 48 tem 140737488355328Grãos.

Quadro do xadrez 49 tem 281474976710656Grãos.

Quadro do xadrez 50 tem 562949953421312Grãos.

Quadro do xadrez 51 tem 1.12589990684262E15Grãos.

Quadro do xadrez 52 tem 2.25179981368525E15Grãos.

Quadro do xadrez 53 tem 4.5035996273705E15Grãos.

Quadro do xadrez 54 tem 9.00719925474099E15Grãos.

Quadro do xadrez 55 tem 1.8014398509482E16Grãos.

Quadro do xadrez 56 tem 3.6028797018964E16Grãos.

Quadro do xadrez 57 tem 7.20575940379279E16Grãos.

Quadro do xadrez 58 tem 1.44115188075856E17Grãos.

Quadro do xadrez 59 tem 2.88230376151712E17Grãos.

Quadro do xadrez 60 tem 5.76460752303423E17Grãos.

Quadro do xadrez 61 tem 1.15292150460685E18Grãos.

Quadro do xadrez 62 tem 2.30584300921369E18Grãos.

Quadro do xadrez 63 tem 4.61168601842739E18Grãos.

Quadro do xadrez 64 tem 9.22337203685478E18Grãos.

Serão pagos 18446744073709551600.00 grãos.

Fim da execução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.