Ajuda em algoritmo !

06/09/2015

0

Estou com dificuldades em algoritmos e professor deu este probleminha para resolvermos, alguém pode me dar uma ajuda?

1. São dados N azulejos de dimensões 10cm x 10cm. Com eles, você deve montar um
conjunto de quadrados (com espessura de um azulejo) de modo a utilizar TODOS os azulejos
dados. Inicialmente você deve montar o maior quadrado possível com os azulejos dados;
então, com os azulejos que sobraram, você deve montar o maior quadrado possível, e assim
sucessivamente. Por exemplo, se forem dados 31 azulejos, o conjunto montado terá quatro
quadrados, conforme ilustra a figura abaixo:
Faça um algoritmo que calcule o número de quadrados do conjunto montado para
um determinado número de azulejos que seja informado. Saia do algoritmo quando
informado o número zero (0)
Troplive

Troplive

Responder

Post mais votado

01/10/2015

Resumindo, se tem um processo que pode ser executado de forma repetida até restarem 0 azulejos:

1. Extrair raiz do número.
2. Pegar maior inteiro próximo da raiz obtida (função Floor).
3. Elevar o número ao quadrado, obtendo o tamanho do maior quadrado possível. Aqui se tem um quadrado.
4. Subtrair o quadrado obtido do número de azulejos original.
5. Repetir o processo com a diferença obtida no passo 4.

Espero ter ajudado.

Joel Rodrigues

Joel Rodrigues
Responder

Mais Posts

06/09/2015

Troplive

Me auxiliem, estou tentando mas ainda não consegui... ajudem no meu erro !
se eu digito o n° 347 por exemplo, não gera a resposta certa.


algoritmo "Calculo de Quadrados"
// Função : Contar quantos quadrados consigo montar com número de azulejos
// Autor : Tatiele Nascimento
// Data : 22/03/2015
// Seção de Declarações


var

raiz, Raiz2:real
n,calc1, calc2, calc3, Aux, Aux2, quadrados, quadrados1: inteiro
inicio
escreva ("Digite o número de azulejos:")
leia (n)
se (n=0) entao
escreval ("Digite outro número inteiro e maior que zero")
senao
se (n<=3) entao
quadrados1 <- n
Escreval ("O número de quadrados é: ", quadrados1) //Ex: o número digitado foi 9
senao
se (n>3) entao

ENQUANTO (n >3) FACA
raiz <- n^(1/2) + 0,0012566 // raiz quadrada de 9 é exata (3)
// por isso que coloquei (+ 0,0012566)
calc1 <- int(raiz) * int(raiz) // aqui só preciso pegar o inteiro das raizes
Aux <- n - Calc1 // 9-9 = 0
quadrados <- 1
se Aux <=3 entao
quadrados <- quadrados + Aux // aqui é para casos que sobra 1,2,3
senao
quadrados <- quadrados + 1
fimse
se (Aux>3) entao
Aux2 <- Aux
Raiz2 <- Aux2^(1/2) + 0,0012566 //se Aux que deu 0, for maior que 3, preciso repetir o esquema de cima
calc2 <- int(Raiz2) * int(Raiz2) //
calc3 <- Aux - calc2 //
se calc3 <=3 entao
quadrados <- quadrados + calc3 // se for menor que 3. não preciso repetir tudo de novo
// pois 3 azulejos não formam um quadrado maior, entao fica como tres quadrados
FIMSE
FIMSE
n<- calc3 // aqui n vai receber o valor de calc3, para continuar ou não o laço

FIMENQUANTO
escreval("o número de quadrados é!", quadrados)


fimse
fimse
fimse




fimalgoritmo
Responder

01/10/2015

Joel Rodrigues

Um quadrado de azulejos possui um número de azulejos que é um quadrado perfeito, certo? Por exemplo, 1, 4 (2 por lado), 9 (3 por lado), 16 (4 por lado), etc.
Sendo assim, para saber qual é o maior quadrado perfeito antes do número fornecido, você extrai a raiz deste e pega o valor inteiro abaixo mais próximo.

Por exemplo, para o número 347, sua raiz é aproximadamente 18.63. Então pega-se o valor 18 e eleva-se ao quadrado, que resulta em 324.

Usando 324 azulejos, restam 23. Então repete-se o procedimento.

A raiz de 23 é aproximadamente 4,79. Pega-se 4 e eleva-se ao quadrado, gerando um quadrado de 16 azulejos. Sobram então 7 azulejos, então repete-se o processo.

A raiz de 7 é aproximadamente 2,64, então toma-se 2 ao quadrado, que dá num quadrado de 4 azulejos, restando 3 azulejos. Repete-se o processo.

A raiz de 3 é aproximadamente 1,73, então toma-se 1, que ao quadrado dá 1 e restam 2 azulejos. Repete-se o processo.

A raiz de 2 é aproximadamente 1,41, então toma-se 1 ao quadrado e sobra 1 azulejo.

A raiz de 1 é 1 e não sobram mais azulejos.

No final se tem 6 azulejos: 324, 16, 4, 1, 1, 1.
Responder

13/10/2015

Joel Rodrigues

Conseguiu?
Responder

15/10/2015

Troplive

Consegui sim !
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar