Ir ao conteúdo

Posts recomendados

Postado

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

 

Postado
#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
  • Membro VIP
Postado

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
Postado

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
  • Membro VIP
Postado

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

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