Pesquisar este blog

Livros Recomendados

quarta-feira, 24 de março de 2021

URI (BEECROWD) - 3076 - Exercício de História - Iniciante - C

Plataforma: URI (BEECROWD)

Problema3076


Linguagens: C e C++


Solução:

Nesse exercício usei a mesma lógica tanto no código em C quanto em C++. Para saber o século do ano, basta dividir o ano por 100. No entanto, existe um ponto a ser tratado: o ano 2000 faz parte do século 20, e o ano 2001 faz parte do século 21. A virada de século sempre acontece no ano 1.

Código em C:

Com base no texto acima, a solução diz que precisamos dividir o ano por 100. Se o ano não tiver resto zero, isso significa que é necessário ainda aumentar um século. Por exemplo, 2001 / 100 = 20. O valor de século passa a ser 20. Como o resto de 2001 % 100 é diferente de zero, incrementa-se um à variável século: era 20, passa a ser 21.

#include <stdio.h>

int main() {
    
    int ano, seculo;
    
    while (scanf("%i", &ano) != EOF) {
        
        seculo = ano / 100;
        
        if (ano % 100 != 0)
            seculo++;
        
        printf("%i\n", seculo);
        
    }
    
    return 0;
}

Código em C++:

Na solução em C++ já foi feito o cálculo 1+ano/100, pois de todas as possibilidades, na maioria delas vai ser acrescentado 1 ao século (só não vai quando o ano terminar em zero). Assim, faz-se depois o teste para saber se o resto da divisão inteira entre ano e 100 é zero; neste caso, decrementa-se a variável século.


#include <iostream>
using namespace std; int main() { int ano, seculo; while(cin >> ano) { seculo = 1 + ano / 100; if (ano % 100 == 0) seculo--; cout << seculo << endl; } 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