Pesquisar este blog

Livros Recomendados

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

quarta-feira, 24 de fevereiro de 2021

URI (BEECROWD) - 1864 - Nossos Dias Nunca Voltarão - Iniciante - C e C++


Nossos Dias Nunca Voltarão é o título do problema de iniciante que resolvi e postei aqui. Coloquei duas soluções em C++ úteis para quem está aprendendo estruturas de repetição. Até mais!

Plataforma: URI (BEECROWD)

Problema1864

Enunciado:

E aí? Curtiu a Escola de Inverno deste ano? Para que esta Escola acontecesse, foram muitos que trabalharam, seja na elaboração dos problemas, na configuração do Portal, na logística do evento ou na captação dos recursos. Nosso agradecimento especial deste ano vai paro Prof. Ricardo Oliveira, que não somente aceitou vir ministrar as oficinas como também participou ativamente na organização da Escola. Temos certeza que a experiência e a carreira dele no ICPC como competidor e como coach motivaram e inspiraram todos nós.

Esperamos que você tenha gostado desses últimos dias em Essos e em Westeros, que tenha aprendido bastante e que tenha se divertido. Mas não é só em Essos e em Westeros que você deve se divertir. Aqui, em Além da Muralha, programar também é divertido. Continue estudando, continue treinando, e cada vez mais. O importante é o caminho que você vai trilhar daqui para frente. Nosso conselho é que você procure sempre aproveitar ao máximo cada momento, cada oficina, cada escola, cada treino, cada tempo de prática ou estudo em casa. Nossos dias nunca voltarão.

Imprima os N primeiros caracteres da citação de Søren Kierkegaard definida pelas letras que foram sublinhadas no enunciado deste problema. Preste atenção, pois nenhum espaço foi sublinhado — você é que deve adivinhar o número e a localização dos espaços na frase. A única linha da saída deve consistir apenas de letras maiúsculas e espaços e ser finalizada por fim de linha.

Linguagens: C e C++

Solução:

Basta atribuir o texto a uma variável e percorrê-la como um array, de 0 até n-1, ou seja, informando os n primeiros caracteres da frase.

Código em C:

Essa solução foi feita com a estrutura de repetição while, com o incremento ocorrendo diretamente no acesso ao índice. O incremento utilizado é o pós-incremento, ou seja, primeiro acessa o índice e depois incrementa. Poderia ter sido feito de outras formas também.

#include <stdio.h>

int main() {
    char *texto = "LIFE IS NOT A PROBLEM TO BE SOLVED";
    int n, indice = 0;
    
    scanf("%i", &n);
    
    while (indice < n)
        printf("%c", texto[indice++]);
        
    printf("\n");
    
    return 0;
}

Código em C++:

Nessa solução, logicamente equivalente à solução em C, utilizo a estrutura de repetição for.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#include <iostream>
#include <string>
using namespace std;
 
int main() {
 	string str = "LIFE IS NOT A PROBLEM TO BE SOLVED";
 	int n;
 	cin >> n;
 	for(int i=0;i<n;i++){
 		cout << str[i];
 	}
 	cout << endl;
    return 0;
}

Solução alternativa em C++:

Esta solução utiliza as mesmas estruturas que a solução em C.

#include <iostream>

using namespace std;

int main() {
    string texto = "LIFE IS NOT A PROBLEM TO BE SOLVED";
    int n, indice = 0;
    
    cin >> n;
    
    while (indice < n)
        cout << texto[indice++];
        
    cout << endl;
    
    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