Processamento da Informação

Semana III:

  • Slides em PDF
  • Dica para o exercício 1582 do URI:

      Para ler os números de entrada até o EOF (fim do arquivo) vocês devem fazer:
    
      public static void main(String[] args) throws IOException {
     
          int x, y, z, tmp; // hmmm, pra que eu preciso de um tmp?
          String linha;
          Scanner leitor = new Scanner(System.in);
    
          while (leitor.hasNextLine()) {
              linha = leitor.nextLine();
              if (linha == null) break;
              Scanner sc = new Scanner(linha);
              x = sc.nextInt();
              y = sc.nextInt();
              z = sc.nextInt();
    		    
              // faça a lógica aqui.
          }
      }
    
  • Desafios:

      1) Crie um algoritmo que, para um número inteiro x, encontre o menor valor de d de tal forma que ao dividir xem segmentos de d dígitos, a sequência se torne crescente. Exemplo:

 ```java
 x = 59787232
 d = 1, sequencia = 5, 9, 7, 8, 7, 2, 3, 2
 d = 2, sequencia = 59, 78, 72, 32
 d = 3, sequencia = 597, 872, 32
 d = 4, sequencia = 5978, 7232 // crescente
 menor d = 4
 
 ```
 
 2) Crie um algoritmo que, para um número inteiro `x`, imprima todos os conjuntos contendo os valores de `1` a `x`.
Exemplo: 

 ```java
 x = 3
 {}
 {1}
 {2}
 {3}
 {1, 2}
 {1, 3}
 {1, 2, 3}
 
 ```
 Dica: pense na sequência dos números binários de 0 até `2^x` e crie funções auxiliares.
  • Gabaritos: