Pesquisar este blog

Livros Recomendados

segunda-feira, 17 de agosto de 2020

URI - 1120 - Revisão de Contrato - Strings - C++

Plataforma: URI
Problema1120

Enunciado:
Durante anos, todos os contratos da Associação de Contratos da Modernolândia (ACM) foram datilografados em uma velha máquina de datilografia. Recentemente Sr. Miranda, um dos contadores da ACM, percebeu que a máquina apresentava falha em um, e apenas um, dos dígitos numéricos. Mais especificamente, o dígito falho, quando datilografado, não é impresso na folha, como se a tecla correspondente não tivesse sido pressionada. Ele percebeu que isso poderia ter alterado os valores numéricos representados nos contratos e, preocupado com a contabilidade, quer saber, a partir dos valores originais negociados nos contratos, que ele mantinha em anotações manuscritas, quais os valores de fato representados nos contratos. Por exemplo, se a máquina apresenta falha no dígito 5, o valor 1500 seria datilografado no contrato como 100, pois o 5 não seria impresso. Note que o Sr. Miranda quer saber o valor numérico representado no contrato, ou seja, nessa mesma máquina, o número 5000 corresponde ao valor numérico 0, e não 000 (como ele de fato aparece impresso).

Linguagem: C++

Solução:
É verificado digito por digito para montar a string final. Além disso, é feita uma verificação se o primeiro digito da string final seria 0, neste caso ele não deve ser impresso.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
using namespace std;
 
int main() {
  char digito;
  string teste;
  cin >> digito >> teste;
  while(digito!='0' and teste[0]!='0'){
   string final = "";
   bool first = true;
   for(int i=0;i<teste.length();i++){
    if(digito!=teste[i]){
     if(!first or teste[i]!='0'){
      final += teste[i];
      first = false;
     }
    }
   }
   if(first) cout << 0 << endl;
   else cout << final << endl;
   cin >> digito >> teste;
  }
 
    return 0;
}

Nenhum comentário:

Postar um comentário

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas