Ir ao conteúdo
  • Cadastre-se

C algoritmo azulejos em C


ticobrai

Posts recomendados

Rafael resolveu trocar os azulejos de sua sala de estar, e para isto fez as medições e comprou N azulejos brancos na loja.

O fato de todos os azulejos serem brancos deixou Rafael um pouco preocupado com o design de sua sala de estar, e então decidiu pintar alguns deles para dar um “ar mais moderno” à sua casa.

Posicionou todos os N azulejos em uma linha reta, e enumerou todos eles de 1 até N, da esquerda para a direita.

Para escolher quais azulejos pintar, pensou na seguinte lógica: Escolheu dois inteiros A e B, e disse que iria pintar todos os azulejos cuja enumeração fosse múltipla de A e/ou B.

Ajude Rafael a descobrir quantos azulejos serão pintados no total.

Entrada

Haverá diversos casos de teste. Cada caso de teste contém três inteiros, N, A e B (3 ≤ N ≤ 10⁹, 2 ≤ A, B ≤ N).

O último caso de teste é indicado quando N = A = B = 0, o qual não deverá ser processado.

Saída

Para cada caso de teste, imprima uma linha contendo um inteiro, mostrando quantos azulejos serão pintados no final do processo.

Exemplo de Entrada

10 2 3
50 5 7
1000000 28 32
0 0 0

exemplos de saida 

7
16
62500

alguém PODE ME AJUDAR ???????

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

@ticobrai   você encontrou esse  exercício , número 1512 ,  no   beecrowd  ,  antigo uri online judge  ?  ,  que está nesse link :

https://www.beecrowd.com.br/judge/pt/problems/view/1512

 o que você precisa ?   e se você já tiver feito um código sobre esse exercício , pode postar ele aqui e ajudaremos se precisar .

Link para o comentário
Compartilhar em outros sites

ok, óde me dizer se estou no caminho certo ?

int main()
{
    float area,base,altura,areat;
    int np;
    printf("\n numero de paredes:");
    scanf("%d",&np);
    printf("\n Comprimento da parede:");
    scanf("%f",&base);
    printf("\n Altura da parede;");
    scanf("%f",&altura);
   
        area=(base*altura)/2;
        areat= area*np;
     printf("Area da parede e:%f",area);
     

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

@ticobrai    não , pois você está fazendo o cálculo de área , e ali pede para calcular a qtd de múltiplos desses dois números  ,  talvez você não entendeu a enumeração que seria isso

1763647207_multiploseenumerao.thumb.JPG.0bb2ddf46e6eb5dfdbd10123057b88af.JPG

 e nesse caso o resultado seria igual a 3 ,  e também finalizar  o programa , quando for digitado o valor zero para as três entradas .

Link para o comentário
Compartilhar em outros sites

@devair1010 mas pra saber os mitiplos tem que saber a area da parede e assim eu descubro a quantidade de azulejos, correto? 

24 minutos atrás, devair1010 disse:

@ticobrai    não , pois você está fazendo o cálculo de área , e ali pede para calcular a qtd de múltiplos desses dois números  ,  talvez você não entendeu a enumeração que seria isso

1763647207_multiploseenumerao.thumb.JPG.0bb2ddf46e6eb5dfdbd10123057b88af.JPG

 e nesse caso o resultado seria igual a 3 ,  e também finalizar  o programa , quando for digitado o valor zero para as três entradas .

 

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

@ticobrai não ,   pois o enunciado diz que os azulejos foram posicionados em uma linha Reta ,  igual está nesse desenho que postei ali acima , onde os números de 1 a 12 são a qtd de azulejos e esses quadrados são os próprios azuleios , então serão contados apenas os azulejos com os números que sejam múltiplos desses dois números pegos na entrada .

Link para o comentário
Compartilhar em outros sites

@Leotanis Leite Moraes seria mais o menos assim ?

int N_az,Mut,A,B
    printf("\n informe o numero de Azulejo:");
    scanf("%d",&N_az);
    for(A=1; A<=10; A++)
    
        A=Mult/N_az;
        printf("\n O Mutiplo e:%d",A);
        

 

@devair1010 tipo isso entao ?

int N_az,Mut,A,B
    printf("\n informe o numero de Azulejo:");
    scanf("%d",&N_az);
    for(A=1; A<=10; A++)
    
        A=Mult/N_az;
        printf("\n O Mutiplo e:%d",A);
        

8 minutos atrás, ticobrai disse:

@Leotanis Leite Moraes seria mais o menos assim ?

int N_az,Mut,A,B
    printf("\n informe o numero de Azulejo:");
    scanf("%d",&N_az);
    for(A=1; A<=10; A++)
    
        A=Mult/N_az;
        printf("\n O Mutiplo e:%d",A);
        

 

@devair1010 tipo isso entao ?

int N_az,Mut,A,B
    printf("\n informe o numero de Azulejo:");
    scanf("%d",&N_az);
    for(A=1; A<=10; A++)
    
        A=Mult/N_az;
        printf("\n O Mutiplo e:%d",A);
        

sera que eu posso usar FOR ?

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

Pfimeiro manda ler do usuario N, a e b.

depois faca os testes para saber se n é menor q 10 a nona, se a é maior igual a 2 e b menor que n.

depois o teste se n = a = b. estes testes sao feitos para o algoritmo dar certo, caso negativo , manda ler de novo ate dar.

 

segundo, crie um algoritmo que calcule quantos multiplos tem uma variavel dentro de um intervalo de numeros ( no caso o intervalo seria o numero lido e o valor de n)

 

manda printar a resposta.

 

lembrando tb q este site ae é todo metodico, qualquer erro de sintaxe eles não validam o algoritmo

 

 

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

@ticobrai   pode usar for sim ,  e seria melhor você postar o código inteiro todo mesmo ,  para podermos testar , e use o botão <> CODE ,

1019115396_barracode.jpg.49d1f4744b00debfa8cc64a5c5f4c882.jpg

que está desenhado lá na barra de ferramentas da janela de postar , e então seu código corrigido ficaria assim  :

#include <stdio.h>                 /// precisa dessa biblioteca na linguagem  C
int main()                         /// precisa dessa função principal em todos os programas em C
{
  int N_az,Mut=0,A,B,i;            /// faltou esse ponto_e_virguLA
  printf("\n informe o numero de Azulejo:");
  scanf("%d%d%d",&N_az , &A, &B);  /// faltou pegar os valores de A  e  B
  for(i=1; i<N_az; i++)            /// esse Loop testa todos os numeros
  {                                /// para saber se eh MultipLo
    if(i%A == 0)                   /// "Mult"  variaVel mult não foi criada
    {                              /// o simbolo ( % ) pega o resto da divisao
      Mut++;                       /// incrementa a qtd de multiplos
    }
  }                                /// depois de fazer as verificacoes
  printf("\n A Qtd de  Mutiplos eh -: %d\n",Mut);
                                   /// escreve o resultado contendo a qtd de multiplos na tela
  return 0;                        /// retorna para o windows com valor zero
}

e ainda faltou algumas coisas , como fazer o cálculo do outro numero , o B , e ainda finalizar o programa sem fazer nenhum cálculo , se forem digitados zeros .  e você não respondeu se vai mandar esse código para o beecrowd ,  pois como disse o  @Leotanis Leite Moraes  ,  tem muitos detalhes e um deles é colocar uma Queba de linha no final no último printf .

Link para o comentário
Compartilhar em outros sites

4 horas atrás, ticobrai disse:

preciso do codigo pois, não conseguir fazer

 

Qual o sentido então? Em um forum? Poste uma dúvida. Tentou algo? Pra que vai servir o código para um site de programação competitiva? Ninguém lá conseguiu resolver? Se não sua a solução você vai postar em nome de alguém? Sua escola usa isso?

  • 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!