Plataforma: URI
Problema: 1557Enunciado:
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++
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; }
Nenhum comentário:
Postar um comentário