Ir ao conteúdo
  • Cadastre-se

C Ex: N ao cubo em C


fernandobrito

Posts recomendados

(IME-USP) Sabe-se que um número da forma n ao cubo é igual a soma de n ímpares consecutivos. Exemplo: 1 ao cubo = 1, 2 ao cubo = 3 + 5, 3 ao cubo = 7 + 9 + 11 e 4 ao cubo = 13 + 15 + 17 + 19. Dado m, determine os ímpares consecutivos cuja soma é igual a n 3 para n assumindo valores de 1 a m. Entrada O programa deve ler um número inteiro maior que zero. Saída O programa deve apresentar m linhas com a seguinte mensagem: "k ∗ k ∗ k = x1 + x2 + . . . + xk", onde k = 1, 2, . . . , m e xi é a sequência de números ímpares consecutivos.

Exemplo

Entrada

4

Saída

1*1*1 = 1

2*2*2 = 3+5

3*3*3 = 7+9+11

4*4*4 = 13+15+17+19

#include<stdio.h>
#include<math.h>
main () {
    int m,n,i,impar1,impar2;
    scanf("%d",&m);
    for (i=0;i<=m;i++) {
    for(n=1;n<=m;n++) { 
        if (impar1%2==!0) {
            if (m*m*m == impar1+(impar2+2)) {
            printf("%d*%d*%d = %d+%d\n",n,n,n,impar1,impar2+2);
           }}}}}


Alguém me ajuda com a resolução desse exercício por favor, professor passou pra treinar exercícios com mais de um laço de repetição e to confundindo bastante na hora da lógica.

Obs: Lembrando que não entrei em vetor ainda e estou pegando a matéria de introdução a programação.

 

Link para o comentário
Compartilhar em outros sites

#include<stdio.h>
#include<math.h>
main ()
{
    int m,n,i,j,soma;
    scanf("%d",&m);
    for (i=1;;i+=2) //i começa como 1, soma 2 a cada ciclo e nao para até que uma parada seja forçada
    {
        soma = 0; //reseta a soma a cada ciclo
        for(n=i, j=0; j<m; n+=2, j++) //j é a variavel que conta quantos impares foram somados e n sao os impares
        {
            soma += n; //acumula a soma dos impares consecultivos
        }
        if(soma == m*m*m) { //compara se a soma deu o valor desejado
            printf("%d*%d*%d = %d", m, m, m, i);
            for(n=i+2, j=1; j<m; n+=2, j++) {
                printf("+%d", n);
            }
            printf("\n");
            break; //força a parada do for inicial
        }
    }
}

Deve ter jeitos melhores de resolver, mas foi isso que consegui agora

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá.

 

@MassakiMsk, por favor, explica como funciona esses parâmetros no for.

2 horas atrás, MassakiMsk disse:

        for(n=i, j=0; j<m; n+=2, j++) //j é a variavel que conta quantos impares foram somados e n sao os impares
        {
            soma += n; //acumula a soma dos impares consecultivos
        }

 

Só tinha visto com 3 parâmetros, ai você está usando 5. Tá amarrado. kkkkk  :exorcize:

 

Eu entendi assim:

- n começa com o valor de i;

- j começa com 0;

- A condição para continuar é "enquanto j<m";

- A cada loop n incrementa em 2;

- A cada loop j incrementa em 1.

 

Logo, seria isso?

FOR (inicialização; inicialização; até quando irá ser executado ; incremento ou decremento, incremento ou decremento).

 

Seria o mesmo que?:

		n=i;
		for(j=0; j<m; j++) //j é a variavel que conta quantos impares foram somados e n sao os impares
		{
		   soma += n; //acumula a soma dos impares consecultivos
		   n+=2
		}

 

Por favor, se tiver algum material online explicando como funciona esses for eu agradeço,

 

 

No aguardo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Você pode colocar quantos argumentos quiser dentro de cada campo do for, é só separar por virgula.

é igual esse exemplo que você deu mesmo, é que tenho mania de juntar tudo que dá rsrsrs

Citação

		n=i;
		for(j=0; j<m; j++) //j é a variavel que conta quantos impares foram somados e n sao os impares
		{
		   soma += n; //acumula a soma dos impares consecultivos
		   n+=2
		}

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Eu tô mexendo com C++ a pouco tempo, mas nem sonhava que era possível... não lembro de ter visto isso passando por outras linguagens tb...

 

Da forma que você vez fica bem mais elegante... mas talvez não fique tão claro para quem não tem as manhas ainda.

 

valeu

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!