Ir para conteúdo
Mabel P

Exer de c++

Recommended Posts

Os habitantes do planeta Uno possuem um terrível problema de detecção de números com mais de um algarismo, de modo que, para tudo que vão fazer, transformam qualquer valor inteiro em um número de um algarismo, realizando somas sucessivas do número até o mesmo ser reduzido a um algarismo. Por exemplo, o número 999999999991, no planeta Uno, soma-se todos os algarismos, resultando em 9+9+9+9+9+9+9+9+9+9+9+1 = 100. Como o número 100 tem mais de um algarismo, o processo se repete, resultando em 1+0+0 = 1

Uma das grandes dificuldades que os habitantes possuem está em comparar dois números e verificar qual deles é o maior, segundo as regras do planeta.

Escreva um programa que, dados dois números inteiros, identifique qual deles é o maior número de um algarismo.

Entrada

Haverá diversos casos de teste. Cada caso de teste inicia com dois inteiros N e M (0 ≤ N ≤ 10100, 0 ≤ M ≤ 10100), indicando os dois números a serem comparados.

O último caso de teste é indicado quando N = M = 0, sendo que este caso não deverá ser processado.

Saída

Para cada caso de teste, imprima uma linha, contendo um inteiro, indicando 1 se o primeiro número for o maior de um algarismo, 2 se o segundo número for o maior de um algarismo ou 0 se ambos os números possuírem o mesmo valor de um algarismo.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Eu sou iniciante em programação e já refiz varias vezes esse exercício, mas não da certo. Se puderem ajudar, agradeço desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o que tentou, o objetivo do fórum é orientar =D

 

Att,

Wilber quitZAUMMM

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para realizar a soma, basta você pegar o número e ir realizando o modulo dele por 10 e pegar esse resultado e ir somando:

Ex: 999 MOD 10 = 9, pegue esse 9 e some, depois realize a divisão do número 999 por 10, ficando 99 e realize o mesmo procedimento até que esse número seja menor que 10.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 10/05/2017 at 11:04, rodrigomarden disse:

Para realizar a soma, basta você pegar o número e ir realizando o modulo dele por 10 e pegar esse resultado e ir somando:

Ex: 999 MOD 10 = 9, pegue esse 9 e some, depois realize a divisão do número 999 por 10, ficando 99 e realize o mesmo procedimento até que esse número seja menor que 10.

 

Exatamente. Dividindo um número pela sua base, o quociente dessa divisão novamente por essa mesma base, fazendo assim por diante até que o quociente seja menor do que essa base e pegando-se esse último quociente juntamente com todos os restos das divisões anteriores obtém-se todos os algarismo individuais de um número:

int vetor[50];/*Vetor de algarismos. Cada posicao desse vetor guarda um dos algarismos 
do numero original*/

int i=0;

void limpaalgarismos(){//serve para limpar o vetor de algarismos
  i=0;
}

void algarismos(int num){/*Funcao que armazena somente 1 algarismo do numero por vez no
vetor de algarismos*/  
  int quociente,resto;
  if(num<10)
    vetor[i]=num;
  else{
    quociente=num/10;
    resto=num%10;
    vetor[i]=resto;
    i++;
    algarismos(quociente);    
  }
}

int umalgarismo(){
  int j,soma=0;
  for(j=i;j>=0;j--)
    soma=soma+vetor[j];
  while(soma>=10){
    limpaalgarismos();    
    algarismos(soma);
    soma=umalgarismo();
  }
  return soma;  
}

int main(){  
  int N=1,M=1;
  for(;;){
    scanf("%d",&N);  
    scanf("%d",&M);
    if((N==0)&&(M==0))
      return;  
    algarismos(N);
    N=umalgarismo();
    limpaalgarismos();
    algarismos(M);
    M=umalgarismo();
    limpaalgarismos();
    if(N>M)
      printf("1");
    else if(N<M)
      printf("2");
    else
      printf("0");
    printf("\n");
  }    
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

  • Conteúdo Similar

    • Por josenilson
      Olá pessoal !
       
      Estou tentando rodar um projeto de um jogo na minha maquina porem o mesmo pede para adicionar o log4cxx 0.10.0, realizei pesquisas na internet a respeito mas até agora nada, Encontre para baixar nesse site https://logging.apache.org/log4cxx/1.0.0/download.html porem não sei se devo instalar ele no windows porque ao exportar ele no projeto as depêndencias que precisam dele ficam informando o erro log4cxx.logger.h no such file or directory. a linguagem que estou usando e C++
       
       
    • Por biza
      Ola
      Estou  a construir um datalogger em código C.Desta forma necessito passar os dados entre ficheiros. O meu problema está na inclusão de algumas variáveis no topo de um arquivo .txt onde os dados são salvos. Variáveis como tempo de data e hora, id do dispositivo e muito mais... Para isso preciso de ajuda, gostaria que os dados estivessem disponíveis para todos os arquivos, até aí é fácil, basta incluir a variável como extern, no arquivos *.h e incluí-lo em todos os outros que você deseja que a variável esteja disponível. mas como posso fazer para ter acesso a ele dentro do array que preciso?
      Exemplo: main.c
      #include "main.h" char dateTimeFormat[24]; void main(void){ dateTimeFormat = "22-02-22 13:23:04"; } main.h
      extern char dateTimeFormat[24];  
      teste.c
       
      #include "main.h" extern char dateTimeFormat[24]; /*Header .txt file initialization*/ volatile char headerFile[] ="\n\n" "# HEALT MONITORING SYSTEM \r\n" "# DEVELOPED: BIZA \r\n" "# VERSION: B \r\n" "# DATATIMECAPTURE:"+dateTimeFormat+ "\r\n" "# SAMPLINGFREQUENCY: 500 \r\n" "# SAMPLECHANNELS: 1 2 3 4 5 6 7 8 \r\n" "# SAMPLINGRESULUTION: 24 \r\n" "# IDDEVICE: HEALTHY \r\n" "# ENDOFHEADER  
      Como posso incluir a variável "dateTimeFormat" dentro do headerFile como descrevi acima?
       
    • Por Descomplica Consultoria
      Oi Pessoal, preciso de ajuda com um portfolio academico
    • Por 4Unknow
      Bom dia comunidade Imasters.

      Venho aqui tratar de um problema dúvida que estou tendo com um layout que estou tentando usar o formulário php dele.
      Quando clico em enviar ele me enviar para um arquivo .php  (assets/vendor/simple-forms/sendmail.php)

      Ele não envia o e-mail, acredito que deveria aparecer uma mensagem que o contato foi enviado corretamente.
      Vou deixar os arquivos aqui em anexo quem puder me ajudar nessa, ficaria muito grato.
       
      Link Website (wetransfer.com)
    • Por Dcdbbvb
      Faça um código que deverá ter uma matriz de qualquer tamanho(Você define o tamanho) no qual o usuário irá digitar os números que serão armazenados na matriz. Construa uma função que deverá somar todos os números digitados. No final o programa mostrará a matriz e o valor total da somatória.
       
      por favorrrr alguém me ajuda
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.