Ir ao conteúdo

C++ Função com recursividade e quadrado perfeito


Ir à solução Resolvido por isrnick,

Posts recomendados

Postado

Defina a função quadrados_inv que recebe como argumento um número natural n e devolve a lista dos quadrados perfeitos até n, por ordem decrescente.

Entrada

quadrados_inv(6)

Saída

[36, 25, 16, 9, 4, 1]

Estou com divida na parte de como fazer o quadrado perfeito e aparecer em ordem decrescente.

Tenho isso:

#include <stdio.h>
int quadros_inv (int n){
    int quadrado;
    if (n==0){
        printf("%d\n", n);
    }
    else {
        printf("%d\n", n);
        return quadros_inv(n-1);
    }
}
int main(){
    quadros_inv(6);
return 0;
}

 

  • Solução
Postado
void quadros_inv(int n){
    if(n > 1){
        printf("%d, ", n*n);
        quadros_inv(n-1);
    }
    else {
        printf("1");
    }
}

Assim imprimiria os quadrados perfeitos até n² em ordem decrescente, mas o enunciado falou que a função "devolve a lista", então acho que a intenção era retornar a lista ao invés de imprimir dentro da função... O que aumenta a complexidade do problema.

 

Pelo fato de usar o termo 'lista' no enunciado, e não arranjo ou vetor, e a saída estar com colchetes [ ], me faz pensar que esse exercício originalmente foi proposto para Python e não C ou C++, aí sim faria mais sentido "devolver uma lista".

 

(Sim, buscando online até achei numa lista exercícios de Python, o exercício 9 nesse link: https://www.math.tecnico.ulisboa.pt/~ccal/python/ex02.html )

  • Obrigado 1

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...