Jump to content

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

Share this post


Link to post
Share on other sites

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

 

Att,

Wilber quitZAUMMM

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By picsartisticc
      Meu professor passou uma prova pra casa para entregar na sexta feira e eu ainda não tive tempo de fazer nada e ainda tenho mais outra prova no mesmo dia. E definitivamente icc não tá como prioridade.
      Alguém pode pelo amooor me ajudar? 
      porque assim, máximo respeito pelos programadores viu? É muita paciência que vocês tem!
      1. Ele pede pra implementar um programa que tenha funções de soma, subtração, multiplicação e divisão que opere 2 números e retorne a sua respectiva operação.
      2. Implementar uma função que receba a quantidade de faltas no trabalho e retorne o salario mensal de um funcionario, cuja diaria é 100,00 de acordo com o numero de dias trabalhados.
      Tem essa formula aqui:
      dias_trabalhados=30-falta_no_mes
      salario_mensal=dias_trabalhadosx100
      3. Implantar um procedimento que receba 3 números e exiba-os em ordem crescente.

      Desde já muita gratidão por todos que tirarem um tempinho do tempo pra me salvar. Att.
    • By Lísias de Castro
      Ola, sou Lísias e gostaria de saber se alguém poderia me ajudar nessa tarefa tão difícil para finalizar minha biblioteca.
      Eu fiz um motor de jogos, e nele já consegui implementar todas as funções básicas para um uso primário. Fazendo a criação de jogos simples através dela.
      Mas estou desenvolvendo um rpg, e resolvi fazer com que os personagens atirem a longa distância. Porém, para que isso aconteça, tenho que fazer com que o objeto a ser atirado sempre corra em linha reta.
      Criei uma função que faz com que todos os objetos se movam na tela, mas ela não funciona de uma maneira linear. O que posso modificar nessa função para que ela me proporcione isso?
       
      static STATUS place_user_move(OBJECT_SET * U, BP32 x, BP32 y) { if (U == NULL)return (Off); if (U->x_route == x) { if (U->y_route > y) { U->y_route -= U->y_speed; U->where_stop_but(U, NORTH); if (U->y_route < y) { U->y_route = y; U->where_stop(U); return (On); } } if (U->y_route < y) { U->y_route += U->y_speed; U->where_stop_but(U, SOUTH); if (U->y_route > y) { U->where_stop(U); U->y_route = y; return (On); } } return (Off); } if (U->y_route == y) { if (U->x_route > x) { U->x_route -= U->x_speed; U->where_stop_but(U, WEST); if (U->x_route < x) { U->where_stop(U); U->x_route = x; return (On); } } if (U->x_route < x) { U->x_route += U->x_speed; U->where_stop_but(U, EAST); if (U->x_route > x) { U->where_stop(U); U->x_route = x; return (On); } } return (Off); } if (U->x_route > x) { U->x_route -= U->x_speed; if (U->x_route < x)U->x_route = x; if (U->y_route > y) { U->y_route -= U->y_speed; U->where_stop_but_and(U, NORTH, WEST); if (U->y_route < y)U->y_route = y; } if (U->y_route < y) { U->where_stop_but_and(U, SOUTH, WEST); U->y_route += U->y_speed; } } if (U->x_route < x) { U->x_route += U->x_speed; if (U->x_route > x)U->x_route = x; if (U->y_route < y) { U->y_route += U->y_speed; U->where_stop_but_and(U, SOUTH, EAST); if (U->y_route > y)U->y_route = y; } if (U->y_route > y) { U->y_route -= U->y_speed; U->where_stop_but_and(U, NORTH, EAST); if (U->y_route < y)U->y_route = y; } } return (Off); } PLACE_CALL STATUS PLACE_TYPE place_user_route(CHAINED * user, BP32 x, BP32 y) { if (user && USER_C(user->it)->object && bit_is_on(USER_C(user->it)->object->status, OBJECT_VISIBLE)) { OBJECT_SET * U = USER_C(user->it)->object; if (U->x_route == x && U->y_route == y) { obj_where_stop_all(U); return (On); } //printf("xs %f ys %f\n",object->x_speed,object->y_speed); return (place_user_move(U, x, y)); } return (Off); } #define sign(x) ((x > 0) ? 1 : ((x < 0) ? -1 : 0) ) PLACE_CALL STATUS PLACE_TYPE place_user_straight(CHAINED * user, BP32 x1, BP32 y1) { if (user && USER_C(user->it)->object && bit_is_on(USER_C(user->it)->object->status, OBJECT_VISIBLE)) { OBJECT_SET * O = USER_C(user->it)->object; BP32 dx, dy; dx = x1 - O->x_route; dy = y1 - O->y_route; static BP32 x = -1, y = -1, p = -1; if (x == -1)x = O->x_route; if (y == -1)y = O->y_route; if (p == -1)p = 2 * dy - dx; printf("x %lf y %lf\n", x, y); if (x < x1) { if (p >= 0) { y = y + 1; p = p + 2 * dy - 2 * dx; } else { p = p + 2 * dy; } x = x + 1; } else { O->x_route = x; O->y_route = y; x = -1; y = -1; p = -1; return (On); } O->x_route = x; O->y_route = y; x = -1; y = -1; p = -1; } return (Off); } a função user_place_straight foi minha tentativa de implementar bresenham que promete fazer o que estou tentando.
       
      Isso é o que fá fiz com o motor: https://www.youtube.com/watch?v=nuLi_lB6c4Y&feature=youtu.be
       
      Mas até agora não estou conseguindo resultado
    • By SGTFalcao
      Boa noite, 
       
      Preciso de ajuda com o desenvolvimento de um programa. 
       
      Quero saber 3 coisas .
       
      1 - Criei uma  vetor de struct vinculada a uma constante de valor 5. Quero saber como faço para limitar o cadastro ao tamanho da constante ( controla o n° de posições do vetor da struct)
       
      De forma que ao cadastrar 5 livros ele impeça de cadastrar o sexto. 
       
      2- Impedir que dos 5 cadastros algum deles se repita. (Livros iguais)
       
       
       
      3- Se eu der o comando para exibir a lista de dados cadastrados e não houver nenhum ele tem que informar lista vazia. 
       
       
       
       
       
      Segue o meu código. 
       
      #include<stdio.h>
      #include<stdlib.h>
      #include<string.h>
      #define Max_livros 5
      struct biblio{
          char nomeobra[30];
          char nomeedit[30];
          char nomeaut[30];
          int codigo;
          int ativo;
      };
      biblio livros[Max_livros];
      void menu();
      void cadastrar();
      void mostrar();
      // Menu principal -------------------------INICIO-------------------------------
      int main(){
          menu();
          return 0;
      }
      // -----------------------------------------FIM---------------------------------
      void menu(){
          int op;    
          do{
          system("cls");
          printf("---------->>Sistema para bibliotecas<<----------\n \n \n ");
          printf("\n1 - Inserir um novo cadastro: ");
          printf("\n2 - Mostrar todos os cadastros: ");
          printf("\n0 - Encerrar \n\n");
          printf("Opcao escolhida: ");
          scanf("%d",&op);
          getchar();
          fflush(stdin);
          switch(op){
              case 1:
                   cadastrar();
              break;
              case 2:
                  mostrar();
              break;
              default : 
                  system("cls");
                  printf("\n \n ==========================================");
                  printf("\n\n\n\n\t Erro : opcao invalida!!!\n\n\n\n");
                  printf("\n \n ==========================================\n\n");
                  system("pause");
          }
          getchar();
          }while(op!=0);
                  }            
      void cadastrar(){
          
          system("cls");    
          char nomeobra[20];
          char nomeedit[20];
          char nomeaut[20];
          int codigo;
          int op;
          do{    
              codigo=0;
              codigo=codigo+1;
              printf("\nDigite o nome da obra: ");
              fgets(nomeobra,sizeof(nomeobra),stdin);
                  
              
              printf("\nDigite o(s) nome(s) d(os) autor(es): ");
              fgets(nomeaut,sizeof(nomeaut),stdin);
              
              
              printf("\nDigite o nome da editora: ");
              fgets(nomeedit,sizeof(nomeedit),stdin);
              
              for(int i=0;i<Max_livros;i++){
                  if(livros.ativo==0)
                  {
                      strcpy(livros.nomeobra,nomeobra);
                      strcpy(livros.nomeaut,nomeaut);
                      strcpy(livros.nomeedit,nomeedit);
                      livros.ativo=1;
                      break;
                  }
              }
              printf("\n1 - Continuar \n0 - Sair \n\n");
              scanf("%d",&op);
                  getchar();
                  fflush(stdin);            
          }while(op!=0);
          }
          
          
      void mostrar(){
          int codigo=0;
          system("cls");
          printf("------------->>Lista de livros cadastrados<<-------------\n \n \n");
          for(int i=0;i<Max_livros;i++){
              if(livros.ativo==1){        
                  codigo=codigo+1;
              printf("\nCodigo: %d\n",codigo);
              printf("\nNome da Obra: %s\n",livros.nomeobra);
              printf("\nNome do(s) autor(es): %s\n",livros.nomeaut);
              printf("\nNome da editora: %s\n",livros.nomeedit);
              printf("\n\n--------------------------------\n\n");
              }
          }
          printf("\n\nPressione '0' para voltar ao menu...");
          getchar();
          fflush(stdin);

    • By bitencourtgui
      Estou com uma duvida, ao fazer um select para preencher um campo se ele for igual a real ele deveria preencher ex: o item  1 no valor de 1 real o item 2 no valor de 2 e o item no valor de 3, porem nos três itens ele preenche apenas com o 1º item.
      o código Controller:
      <div class="container">   <div class="col-md-12"> <button id="btnProcessar" type="button" class="btn btn-primary" onclick="processEntSai('.$parameters.');"><span>Processar</span></button> </div>   <div class="row"> <div class="col-md-12"> <table cellpadding="5" id="tableItemNota" class="display dataTable cell-border compact" cellspacing="0" style="textalign:center; border-bottom:1px solid black;"> <thead> <tr style="border: 1px solid #ccc"> <th></th> <th>Item</th> <th>Imagem</th> <th>Qtd</th> <th>U.Medida</th> <th>Peso</th> <th>C&oacute;digo</th> <th>N&ordm; S&eacute;rie</th> <th>Tamanho</th> <th>Descri&ccedil;&atilde;o</th> <th>Coef.</th> <th>Moeda</th> <th>Valor Unit&aacute;rio</th> <th>Valor Total</th> </tr> </thead> <tbody>';   foreach($itemNFSaida as $item) { if(file_exists('uploads/produtos/'.$item['CODREF'].'.JPG')){ $img_url = BASE_URL.'/uploads/produtos/'.$item['CODREF'].'.JPG'; } else { $img_url = BASE_URL.'/assets/images/imgNotFound.png'; }   if($item['QTDDEV'] == $item[$qtdFatRec]){ $tdSelectBox = '<span class="glyphicon glyphicon-ban-circle"></span>'; } else{ $tdSelectBox = '<input type="checkbox" id="'.$item['NUMSEP'].'" name="checkSeq" value="'.$item[$seqCmp].'"/>'; }   if($item['USU_MOEVEN'] == 'AU'){ $item['valorEnt'] = $this->step5ModelObj->TotalentSaiComNota(10, $codFil, $numNota);   $item['PREUNI'] = $item['valorEnt']['USU_VLRMOE'];   } echo '<tr> <td class="order">'.$tdSelectBox.'</td> <td>'.$item[$seqCmp].'</td> <td><img src="'.$img_url.'" id="imgItemPed" data-codpro="'.$item['CODPRO'].'" onclick="itemModalDetalhes(this)"" style="width: 75px; border-radius: 5px; margin: 0px; cursor: pointer;"></td> <td>'.number_format($item['QTD'], 2, '.', '').'</td> <td>'.$item['UNIMED'].'</td> <td>'.number_format($item['PESBRU'], 2, '.', '').'</td> <td>'.$item['CODPRO'].'</td> <td>'.$item['NUMSEP'].'</td> <td>'.$item['CODDER'].'</td> <td>'.$item['CPL'].'</td> <td>'.number_format($item['USU_PREVEN'], 2, '.', '').'</td> <td>'.$item['USU_MOEVEN'].'</td> <td>'.number_format($item['PREUNI'], 2, ',', '').'</td> <td>'.number_format($item['VLRLIQ'], 2, ',', '').'</td> </tr>'; }   echo '</tbody> </table> </div> </div> </div>';
         
      O código da Model:
       
      public function TotalentSaiComNota($codEmp, $codFil, $numPed){ $sql = "SELECT USU_VLRMOE FROM E140IPV WHERE CODEMP = ? AND CODFIL = ? AND NUMNFV = ?";   $sql = $this->db->prepare($sql); $sql->execute(array($codEmp, $codFil, $numPed));   return $sql->fetch(); }      
      Resumindo preciso que não repita o item do select como está repetindo, preciso que traga os item do select 
       1. item 1 
      2. item 2
       3. item 3

      e não 
       1. item 1
       2. item 1
       3. item 1
    • By Luis011
      Estou tentando fazer um programa para cadastro de clientes, para o aprendizado apenas, estou com um erro que nao consigo resolver, cadastro algumas pessoas mas na hora de fazer a pesquisa desses cadastros eu coloco o cpf de uma e aparece as informacoes da proxima pessoa na fila de arrays. E quando tento pesquisar alguma pessoa que nao esteja no array 0 cai no else CPF INVALIDO, 
      Ai vai o codigo: 
      #include <iostream>
      #include <cstdio>
      #include <cstdlib>
      #include <cstring>
      char nome[50] [50];
       char email[50] [50];
       int cpf[50];
       int op;
       int i = 0;
       int a;
      int cpfpesquisa;
      char emailpesquisa[50];
      using namespace std;
      void pesquisa ();
      void cadastro();
      int main()
      {
          do{
          cadastro();
          pesquisa();
          }while(op == 2);
      system ("PAUSE");
      return 0;
      }
      void cadastro() {
       do{cout << "-----CADASTRO-----" << endl << endl;
       cout << "NOME: " ;
       cin >> nome;
       cout << endl <<"EMAIL: ";
       cin >> email;
       cout << endl << "CPF: ";
       cin >> cpf;
       cout << endl << "PARA CONTINUAR CADASTRANDO DIGITE 1";
       cin >> op;
       i++;
       }while(op == 1);
      }
      void pesquisa () {
      do{
      cout << "DIGITE 1 PARA PESQUISAR POR CPF E 2 PRA PESQUISAR POR EMAIL ";
      cin >> op;
      switch(op)
      {
          case 1: cout << "DIGITE O CPF: ";
                  cin >> cpfpesquisa;
                  for(a=0;a<50;a++) {
                      if(cpfpesquisa == cpf[a])
                      {cout << "NOME: " << nome[a] << endl << "EMAIL: " << email[a] << endl;
                  break;}
                  else{
                      cout << "CPF INVALIDO!"; }break;}break;

          case 2: cout << "DIGITE O EMAIL: ";
                  cin >> emailpesquisa;
                  for(a=0;a<50;a++){
                          if (strcmp( emailpesquisa,email[a]))
                          {
                              cout << "NOME: " << nome[a] << endl << "CPF: " << cpf[a] << endl;
                          break;}
                  }

      }
      cout << endl << "PARA CONTINUAR A PESQUISAR DIGITE 1" << endl << "PARA VOLTAR A CADASTRAR DIGITE 2 ";
      cin >> op;
      }while (op ==1);
      }
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.