Ir ao conteúdo
  • Cadastre-se

phzsantos

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

3
  1. @Simon Viegas Usando a lógica de @Midori eu fiz o código desse jeito: #include <stdio.h> int main() { int numero; printf("Numero: "); scanf("%d", &numero); do { numero++; } while (numero % 11 && numero % 13 && numero % 17); printf("Primeiro multiplo: %d", numero); return 0; } Eu não usei o operador += porque não precisava nessa ocasião, mas com certeza irei fazer o uso dele em outras situações no futuro.
  2. @Midori Realmente bem mais simples. Eu ainda não cheguei nesse nível aí hehe. E meu algoritmo ainda está errado. Ele pega o primeiro múltiplo, até se ele for o próprio número digitado. Por exemplo: Número digitado: 11 Ele pega o 11 como primeiro múltiplo. O certo seria ele pegar o 13. Pra corrigir isso no meu código, é só na hora de atribuir o i, colocar i = número + 1. Porém, vou trocar para a forma que você colocou acima, bem mais simples. Não conhecia esse operador "+=" e também não conhecia essa forma de escrever uma condicional sem comparar valores.
  3. @Simon Viegas Rapaz, pior que eu errei mesmo hehe, refiz o código e ficou ainda mais simples. O código anterior fica pra quem quer os 3 primeiros múltiplos dos 3 números a partir do número fornecido pelo usuário. #include <stdio.h> int main() { int i, numero, divisor, multiplo; printf("Numero: "); scanf("%d", &numero); divisor = 0; for (i = numero; divisor < 1; i++) { if (i % 11 == 0 || i % 13 == 0 || i % 17 == 0) { multiplo = i; divisor++; } } printf("Primeiro multiplo: %d", multiplo); return 0; }
  4. Sei que a pergunta é meio antiga, mas melhor um pergunta antiga respondida do que uma eterna duvida. Eu fiz esse programa em C, e aqui vai uma explicação rapidinha do que eu fiz: Primeiro, temos que entender a pergunta. Ele quer que achar os primeiros múltiplos de 11, 13 e 17 a partir de um numero digitado pelo usuário, sendo assim temos que ler esse numero e começar a contar a partir dele e achar os primeiros múltiplos dos números 11, 13, 17 (não nessa ordem especificamente). O que eu fiz foi, ler o numero do usuário, usar um loop while, uma variável que conta os divisores (nós só queremos 3, o primeiro de 11, 13 e 17), criei um vetor (array) para guardar os múltiplos (sendo a posição 0 para o 11, a 1 para o 13 e a 2 para o 17) e usei a logica de que se o numero for divisível for tal(11, 13 ou 17) e a posição do vetor estiver valendo 0, ele vai atribuir o valor de i para aquela posição do array e vai contar +1 para os divisores. A posição do vetor estar zerada quer dizer que ainda não foi atribuído nenhum numero para lá, e se ela não for 0 quer dizer que o primeiro múltiplo já foi descoberto. Código: #include <stdio.h> int main() { int i, numero, divisores, multiplos[3]; for (i = 0; i < 3; i++) { multiplos[i] = 0; } printf("Numero: "); scanf("%d", &numero); divisores = 0; i = numero; while (divisores < 3) { if (i % 11 == 0 && multiplos[0] == 0) { multiplos[0] = i; divisores++; } if (i % 13 == 0 && multiplos[1] == 0) { multiplos[1] = i; divisores++; } if (i % 17 == 0 && multiplos[2] == 0) { multiplos[2] = i; divisores++; } i++; } printf("primeiro multiplos (11,13,17): %d, %d, %d", multiplos[0], multiplos[1], multiplos[2]); return 0; } Para traduzir para o C++ é o só trocar a biblioteca padrão para iostream e printf e scanf por cout e cin (lembrando de fazer as devidas alterações como using namespace std; e <<, >>). Código no GitHub: https://github.com/phzsantos/Learning_C/blob/main/02 - Estruturas de repeticao/Exercicios/26 - Exercicio.c

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!