Pesquisar este blog

Livros Recomendados

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

sábado, 18 de dezembro de 2021

URI (BEECROWD) - 3342 - Keanu - Iniciante - C e C++

Outro exercício novo resolvido! Quem mais conseguiu fazer esse?

Antes de resolver qualquer algoritmo do URI (BEECROWD agora), recomendamos seguir os seguintes passos:

  1. Ler todo enunciado do problema.
  2. Ler os tópicos do fórum em caso de dúvidas
  3. Preparar arquivos de entrada para teste, considerando as entradas de exemplo do URI, do udebug e outros valores limite;
  4. Preparar o ambiente de desenvolvimento e utilizar os mesmos parâmetros dos compiladores do URI
  5. Preparar um código-fonte padrão, já contendo a chamada às bibliotecas padrão, pré-processadores, retorno de função e um comando de escrita com "\n", pois no URI a grande maioria dos problemas exige a quebra de linha final.


Plataforma
: URI (BEECROWD)

Problema3342

Enunciado:

Keanu estava testando novos modelos de tabuleiros de xadrez quanto teve a seguinte duvida: Quantas casas brancas e quantas casas pretas tem um tabuleiro de xadrez de tamanho nxn?

Linguagens: C e C++

Solução:

Utilizando o tipo inteiro, basta saber que sempre teremos a metade dos quadrados brancos e a metade dos quadrados pretos em relação ao tamanho total do tabuleiro, que será n x n. No entanto, quanto n é ímpar, uma das cores receberá um quadrado a mais, e será sempre o branco. Então precisamos garantir que o branco sempre pegue +1 quando n for ímpar. Assim, ((n*n)+1)/2 é o cálculo do branco, e n*n/2 é o cálculo do preto, ou (n*n)-branco. Resolvi em C utilizando variáveis e em C++ com o cálculo direto na operação de saída (escrita).

Conseguiram entender a solução?

Código em C:
#include <stdio.h>

int main() {
    
    unsigned int n;
    unsigned int total;
    unsigned int brancas;
    unsigned int pretas;
    
    scanf("%u", &n);
    
    total = n * n;
    pretas = total / 2;
    brancas = total - pretas;
    
    printf("%u casas brancas e %u casas pretas\n", brancas, pretas);

    return 0;
}


Código em C++:
#include <iostream>

using namespace std;

int main() {
    
    unsigned int n;
    
    cin >> n;
    cout << (n * n + 1) / 2 << " casas brancas e " << n * n / 2 << " casas pretas" << 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