URI Online Judge | 1578
Timelimit: 1
Matriz de Quadrados
Por Leandro Zatesko, UFFS
Brasil

Atrapalhilton é um estudante muito dedicado, embora muito, muito atrapalhado. Na semana passada, seu professor de Matemática, o Sr. Sabetudilton, recomendou à classe uma lista de exercícios sobre matrizes. Atrapalhilton, aplicado como é, dediciu fazer os exercícios no mesmo dia, tão logo chegou em casa, embora apenas após assistir o episódio vespertino de A Galinha Listradinha, seu programa de TV favorito. O enunciado de um dos exercícios dizia:
- Calcule o quadrado de cada uma das matrizes abaixo…
No entanto, Atrapalhilton fez uma baita duma confusão. Para ele, o quadrado de uma matriz quadrada A é a matriz dos quadrados dos valores da matriz A. Por exemplo, o quadrado da matriz
1 | 3 |
5 | 7 |
para ele não é
16 | 24 |
40 | 64 |
mas
1 | 9 |
25 | 49 |
Atrapalhilton conseguiu calcular o “quadrado” da primeira matriz, da segunda, da terceira e percebeu que já estava muito tarde, que não ia conseguir terminar de calcular os “quadrados” de todas as N matrizes da lista. Então, decidiu escrever um programa que fizesse o serviço para ele.
Entrada
A primeira linha da entrada é constituída por um único inteiro positivo N (N ≤ 100), o qual designa o número de matrizes cujos “quadrados” ainda não foram calculados. Em seguida ocorre a descrição de cada uma das Nmatrizes. A primeira linha da descrição de uma matriz consiste de um único inteiro M (1 ≤ M ≤ 20), o qual representa o número de linhas e o número de colunas da matriz. Seguem, então, M linhas, cada uma com Minteiros aij (0 ≤ aij ≤ 232-1, 1 ≤ i,j ≤ M), os quais correspondem às células da matriz, de modo que valores consecutivos numa mesma linha são separados por um espaço em branco.
Saída
Imprima o “quadrado” de cada matriz da entrada, conforme o que Atrapalhilton entende pelo “quadrado” de uma matriz. Antes de imprimir cada “quadrado”, imprima a linha “Quadrado da matriz #x:” (sem as aspas), para ajudar Atrapalhilton a não se perder na hora de passar a limpo os resultados para o caderno. Comece a contagem em x = 4, afinal, Atrapalhilton já calculou os “quadrados” das 3 primeiras matrizes. Adicione tantos espaços em branco à esquerda de cada valor quanto necessários para que os valores de uma mesma coluna fiquem todos alinhados à direita, de modo que haja ao menos um valor em cada coluna não precedido por espaços em branco além do espaço em branco obrigatório que separa colunas consecutivas. Imprima também uma linha em branco entre “quadrados” de matrizes consecutivas.
#include <stdio.h>
#include <stdlib.h>
int main() {
int n_matrizes, n_linhasColunas, i, j, k;
scanf("%d", &n_matrizes);
unsigned long long int array[100][100], maior[100], n_algarismos[100];
for(k = 0; k < n_matrizes; k++){
scanf("%d", &n_linhasColunas);
for(j = 0; j < 100; j++){
maior[j] = 0;
n_algarismos[j] = 0;
}
for(i = 0; i < n_linhasColunas; i++){
for(j = 0; j < n_linhasColunas; j++){
scanf("%llu", &array[i][j]);
if(array[i][j]*array[i][j] > maior[j]){
maior[j] = array[i][j]*array[i][j];
}
}
}
for(j = 0; j < n_linhasColunas; j++){
while(maior[j] != 0){
n_algarismos[j] = n_algarismos[j] + 1;
maior[j] = maior[j] / 10;
}
}
char buf[20];
if(k > 0) printf("\n");
printf("Quadrado da matriz #%d:\n", k+4);
for(i = 0; i < n_linhasColunas; i++){
for(j = 0; j < n_linhasColunas; j++){
if(j > 0) printf(" ");
sprintf(buf, "%%%llullu", n_algarismos[j]);
printf(buf, array[i][j]*array[i][j]);
}
printf("\n");
}
}
}
#include <stdlib.h>
int main() {
int n_matrizes, n_linhasColunas, i, j, k;
scanf("%d", &n_matrizes);
unsigned long long int array[100][100], maior[100], n_algarismos[100];
for(k = 0; k < n_matrizes; k++){
scanf("%d", &n_linhasColunas);
for(j = 0; j < 100; j++){
maior[j] = 0;
n_algarismos[j] = 0;
}
for(i = 0; i < n_linhasColunas; i++){
for(j = 0; j < n_linhasColunas; j++){
scanf("%llu", &array[i][j]);
if(array[i][j]*array[i][j] > maior[j]){
maior[j] = array[i][j]*array[i][j];
}
}
}
for(j = 0; j < n_linhasColunas; j++){
while(maior[j] != 0){
n_algarismos[j] = n_algarismos[j] + 1;
maior[j] = maior[j] / 10;
}
}
char buf[20];
if(k > 0) printf("\n");
printf("Quadrado da matriz #%d:\n", k+4);
for(i = 0; i < n_linhasColunas; i++){
for(j = 0; j < n_linhasColunas; j++){
if(j > 0) printf(" ");
sprintf(buf, "%%%llullu", n_algarismos[j]);
printf(buf, array[i][j]*array[i][j]);
}
printf("\n");
}
}
}
0 Comentários