Pesquisar este blog

Livros Recomendados

segunda-feira, 28 de setembro de 2020

URI (BEECROWD) - 1534 - Matriz 123 - Iniciante - C e C++

Buenas! Hoje vamos resolver o problema Matriz 123! Nossas soluções foram feitas com e sem matriz, confere abaixo!

Plataforma: URI (BEECROWD)

Problema1534

Enunciado:
Leia um valor inteiro N que é o tamanho da matriz que deve ser impressa conforme o modelo fornecido.

Linguagens: C e C++

Solução:

Na primeira forma de resolução, aplicada no código C e no primeiro código C++, testei se a soma de linha e coluna resultava em n-1, caso em que escrevo 2. Se linha for igual a coluna, devo escrever 1, e nos outros casos escrevo 3.

Código em C:

#include <stdio.h>

int main() {

    int n;

    while (scanf("%i", &n) != EOF) {
        
        int linha, coluna;
        
        for (linha = 0; linha < n; linha++) {
            
            for (coluna = 0; coluna < n; coluna++) {
                
                if (linha + coluna == n - 1) printf("2");
                else if (linha == coluna) printf("1");
                else printf("3");
                
            }
            
            printf("\n");
            
        }
        
    }

    return 0;
}

Código em C++:

#include <iostream>

using namespace std;

int main() {

    int n;

    while (cin >> n) {
        
        int linha, coluna;
        
        for (linha = 0; linha < n; linha++) {
            
            for (coluna = 0; coluna < n; coluna++) {
                
                if (linha + coluna == n - 1) cout << 2;
                else if (linha == coluna) cout << 1;
                else cout << 3;
                
            }
            
            cout << endl;
            
        }
        
    }

    return 0;
}

Solução alternativa em C++:

A lógica adotada aqui é semelhante, mas em vez de escrever direto os valores, armazeno-os em uma matriz. No final, imprimo a matriz. Porém, não era necessário utilizá-la, como vimos nas soluções anteriores.

#include <iostream>

using namespace std;

int main() {

    int n;

    while (cin >> n) {
        
        int linha, coluna;
        int matriz[n][n];
        
        for (linha = 0; linha < n; linha++) {
            for (coluna = 0; coluna < n; coluna++) {
                
                if (linha + coluna == n - 1)
                    matriz[linha][coluna] = 2;
                else if (linha == coluna)
                    matriz[linha][coluna] = 1;
                else
                    matriz[linha][coluna] = 3;
                
            }
        }
        
        for (linha = 0; linha < n; linha++) {
            for (coluna = 0; coluna < n; coluna++)
                cout << matriz[linha][coluna];
                
            cout << 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