Pesquisar este blog

Livros Recomendados

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

quarta-feira, 30 de setembro de 2020

URI - 1557 - Matriz Quadrada III - Iniciante - C

Plataforma: URI

Problema1557

Enunciado:
Escreva um algoritmo que leia um inteiro N (0 ≤ N ≤ 15), correspondente a ordem de uma matriz M de inteiros, e construa a matriz de acordo com o exemplo.

Linguagem: C

Solução:

#include <stdio.h>
int potencia2(short int expoente) {
    int resposta = 1;
    if (expoente == 0)
        return 1;
    while (expoente--) {
        resposta += resposta;
    }
    return resposta;
}
int maiorTamanho(int t) {
    int maiorNumero = potencia2(t + t - 2);
    int digitos = 1;
    while (maiorNumero > 9) {
        maiorNumero /= 10;
        digitos++;
    }
    return digitos;
}
int main() {
    int tamanho;
    int valor;
    while (1) {
        scanf("%i", &tamanho);
        if (tamanho == 0) break;
	int maior = maiorTamanho(tamanho);
        int linha = 0, coluna;
        while (linha < tamanho) {
            valor = potencia2(linha);
	    coluna = 0;
            while (coluna < tamanho) {
                if (coluna == 0)
                    printf("%*d", maior, valor);
                else
                    printf(" %*d", maior, valor);
                valor += valor;
                coluna++;
            }
            printf("\n");
            linha++;
        }
        printf("\n");
    }
    return 0;
}

terça-feira, 29 de setembro de 2020

URI - 1557 - Matriz Quadrada III - Iniciante - C++

Plataforma: URI

Problema1557

Enunciado:
Escreva um algoritmo que leia um inteiro N (0 ≤ N ≤ 15), correspondente a ordem de uma matriz M de inteiros, e construa a matriz de acordo com o exemplo.

Linguagem: C++

Solução:

#include <iostream>
#include <iomanip>
using namespace std;
int potencia2(short int expoente) {
    int resposta = 1;
    if (expoente == 0)
        return 1;
    while (expoente--) {
        resposta += resposta;
    }
    return resposta;
}
int maiorTamanho(int t) {
    int maiorNumero = potencia2(t + t - 2);
    int digitos = 1;
    while (maiorNumero > 9) {
        maiorNumero /= 10;
        digitos++;
    }
    return digitos;
}
int main() {
    int tamanho;
    int valor;
    while (1) {
        cin >> tamanho;
        if (tamanho == 0) break;
	int maior = maiorTamanho(tamanho);
        int linha = 0, coluna;
        while (linha < tamanho) {
            valor = potencia2(linha);
	    coluna = 0;
            while (coluna < tamanho) {
                if (coluna == 0)
                    cout<<fixed<<right<<setw(maior)<<valor;
                else
                    cout<<" "<<fixed<<right<<setw(maior)<< valor;
                valor += valor;
                coluna++;
            }
            cout << endl;
            linha++;
        }
        cout << endl;
    }
    return 0;
}

domingo, 30 de agosto de 2020

URI - 1557 - Matriz Quadrada III - Iniciante - C++ - Com Matriz

Plataforma: URI

Problema1557

Enunciado:
Escreva um algoritmo que leia um inteiro N (0 ≤ N ≤ 15), correspondente a ordem de uma matriz M de inteiros, e construa a matriz de acordo com o exemplo.

Linguagem: C++

Solução:

#include <iostream>
#include <iomanip>

using namespace std;

int potencia(short int expoente) {
    int resposta = 1;
    
    if (expoente == 0)
        return 1;
        
    while (expoente--)
        resposta += resposta;

    return resposta;
}

int maiorTamanho(int t) {
    int maiorNumero = potencia(t + t - 2);
    int digitos = 1;
    
    while (maiorNumero > 9) {
        maiorNumero /= 10;
        digitos++;
    }
    return digitos;
}

int main() {
    int tamanho;
    int valor;
    
    while (1) {
        cin >> tamanho;
        int mat[tamanho][tamanho];
        if (tamanho == 0)
            break;
            
	int maior = maiorTamanho(tamanho);
        int linha = 0, coluna;
        
        while (linha < tamanho) {
            valor = potencia(linha);
	        coluna = 0;
	        
            while (coluna < tamanho) {
                mat[linha][coluna] = valor;
                
                if (coluna != 0)
                    cout << " ";
                    
                cout << fixed << right << setw(maior);
                cout << mat[linha][coluna];
                valor += valor;
                coluna++;
            }
            cout << endl;
            linha++;
        }      
        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