Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 1168. Mostrar todas as postagens
Mostrando postagens com marcador 1168. Mostrar todas as postagens

quarta-feira, 13 de janeiro de 2021

URI - 1168 - LED - Strings - C++ - Solução Alternativa

Plataforma: URI
Problema1168

Enunciado:
João quer montar um painel de leds contendo diversos números. Ele não possui muitos leds, e não tem certeza se conseguirá montar o número desejado. Considerando a configuração dos leds que formam os números, faça um algoritmo que ajude João a descobrir a quantidade de leds necessário para montar o valor.

Linguagem: C++

Solução:
Basta fazer vários ifs aninhados (ou um switch, se preferir) com cada opção de dígito e o respectivo valor a ser incrementado na variável leds.

#include <iostream>
using namespace std;
int getTamanho(string v) {
    for (int len = 0; ; ++len)
        if (!v[len])
            return len;
}
int main() {
    int n, leds, j, i = 0;
    string v;
    char digito;
    cin >> n;
    cin.ignore();
    while (i++ < n) {
        leds = 0;
        cin >> v;
        for (j = 0; j < getTamanho(v); j++) {
            digito = v[j];
            if (digito == '1')
                leds += 2;
            else if (digito == '2' || digito == '3' || digito == '5')
                leds += 5;
            else if (digito == '4')
                leds += 4;
            else if (digito == '7')
                leds += 3;
            else if (digito == '8')
                leds += 7;
            else
                leds += 6;
        }
        cout << leds << " leds" << endl;
    }
    return 0;
}

terça-feira, 11 de agosto de 2020

URI - 1168 - LED - Strings - C++

Plataforma: URI
Problema1168

Enunciado:
João quer montar um painel de leds contendo diversos números. Ele não possui muitos leds, e não tem certeza se conseguirá montar o número desejado. Considerando a configuração dos leds que formam os números, faça um algoritmo que ajude João a descobrir a quantidade de leds necessário para montar o valor.

Linguagem: C++

Solução:
Neste problema é necessário saber quantos leds há em cada caractere numérico, a saber:
1: 2 leds
2: 5 leds
3: 5 leds
4: 4 leds
5: 5 leds
6: 6 leds
7: 3 leds
8: 7 leds
9: 6 leds

Desta forma, era necessário apenas percorrer a string led e acumular a quantidade de leds com base na quantidade de leds que cada caractere numérico contém.


 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
27
28
29
30
31
32
#include <iostream>
 
using namespace std;
 
int main() {
 
  int n;
  cin >> n;
  while(n--){
   string led;
   cin >> led;
   int sum = 0;
   for(int i=0; i< led.length();i++){
    switch(led[i]){
     case '0': sum+= 6; break;
     case '1': sum+= 2; break;
     case '2': sum+= 5; break;
     case '3': sum+= 5; break;
     case '4': sum+= 4; break;
     case '5': sum+= 5; break;
     case '6': sum+= 6; break;
     case '7': sum+= 3; break;
     case '8': sum+= 7; break;
     case '9': sum+= 6; break;
     default: break;
    }
   }
   cout << sum << " leds"<<endl;
  }
 
    return 0;
}

domingo, 5 de abril de 2020

URI - 1168 - LED - Strings - C

Plataforma: URI
Problema1168

Enunciado:
João quer montar um painel de leds contendo diversos números. Ele não possui muitos leds, e não tem certeza se conseguirá montar o número desejado. Considerando a configuração dos leds que formam os números, faça um algoritmo que ajude João a descobrir a quantidade de leds necessário para montar o valor.

Linguagem: C

Solução:
Neste problema é necessário saber quantos leds há em cada caractere numérico, a saber:
1: 2 leds
2: 5 leds
3: 5 leds
4: 4 leds
5: 5 leds
6: 6 leds
7: 3 leds
8: 7 leds
9: 6 leds

Desta forma, era necessário apenas percorrer a string (char *) e acumular a quantidade de leds com base na quantidade de leds que cada caractere numérico contém.


#include <stdio.h>
#include <string.h>

int main() {
    int n, leds, j, i = 0;
    
    char *v = (char *) malloc(sizeof(char) * 100);
    
    scanf("%i", &n);
    
    while (i++ < n) {
        leds = 0;
        j = 0;
        scanf("%s", v);
        
        while (j < strlen(v)) {
            switch(v[j]) {
                case '1': leds += 2; break;
                case '2':
                case '3':
                case '5': leds += 5; break;
                case '4': leds += 4; break;
                case '7': leds += 3; break;
                case '8': leds += 7; break;
                default: leds += 6; break;
            }
            j++;
        }
        
        printf("%i leds\n", leds);
    }

    return 0;
}

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