Ir ao conteúdo

Posts recomendados

Postado

Olá, preciso fazer um programa em C com a função recursiva, porém não consigo achar nem a lógica pra começar. Alguém pode me ajudar?

O exercício é esse: 

****Implemente uma função recursiva chamada quadrados que receba, como parâmetro, um número inteiro n, imprima uma lista com o tamanho do lado de cada um dos quadrados que se pode formar com n azulejos.****

 

Postado

Fx.png.0f87e56dc50cd816f786adb1cd08ecf5.pngBoa noite@Julian Bissani, tudo bem! Então, não sou especialista daqui, mas, notei que uma ou mais informações são importantes para completar o sentido desse enunciado.

 

Meu palpite é que a teacher deixou a critério dos alunos definir; n para as dimensões do quadrado. Por exemplo: no mínimo precisa de 1 para formar o 1² quadrado, 4 para 2² quadrado…  

"

 

Agora meu bom, a porção chata da conversa!

Os membros não são obrigados e não deveriam usar o CdH para fornecer/requisitar resposta de exercício e exames escolares porque, além de antiético, é uma contravenção.

Citação

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários [mick 07]

 

Logo,

4 horas atrás, Julian Bissani disse:

porém não consigo achar nem a lógica pra começar

O exercício é a soma das partes (lógica + código) por essa razão não quero resolver POR você.

 

Ainda assim, podemos ajudar mesmo depois que conseguir acha a sua lógica, se ainda restar dúvida; de que está certa, e com os comandos de C certos, já que nesse caso tem maior porção do exercício pronto.

"

Postado

@mauro_b

#include<stdio.h>
#include<math.h>

void quadrados(int n){
    if(n==0){
         0;
    } 
    if(n==1){    
         1;
    }      
    else{
        n-quadrados(sqrt(n));
        } 
        
}

int main(){
    int n, resultado;
    
    printf("Digite um numero inteiro para obter uma lista com o tamanho do lado de cada um dos quadrados que se pode formar:");
    scanf("%d",&n);
    
    resultado=quadrados(n);
    printf("%d",resultado);
}

 

to muito confuso, pois preciso fazer a expressão achar a raíz mas n da certo

Postado
1 hora atrás, Chyskhaan disse:

to muito confuso, pois preciso fazer a expressão achar a raíz mas n da certo

 

Não necessariamente. Pode seguir ao contrário, como faria o pedreiro. Se tem algum azulejo e ele for quadrado ;) já tem a primeira resposta. Aí vai tentar o próximo quadrado, 2x2. Terá 4 azulejos? Se tiver, argamassa neles. 

Terá outros 5 para completar as "carreiras"? 

 

Acho que já entendeu. Não precisa da raiz quadrada. Precisa dos azulejos, e do lado matemático, de uma multiplicação e uma subtração.

Postado

Exclamacao.png.78aa600c6b3a434a3882f612e8d0d279.pngBoa Tarde @Chyskhaan meu colega de código! Eu vejo, daqui, que está usando o conceito de função recursiva.

 

 

Entretanto, essa função que devolve a raiz quadrada antecipou completamente trabalho que deveria ser da função recursiva, só salva se eu estiver errado. De mim, tenho que valor inteiro da Raiz (n) é igual ao maior lado do quadro possível com n azulejos.

"

 

Então o de menor lado 1,[...], Raiz (n) é o de maior lado.

E no meio ([...])  tem nada não?

"

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!