首页 > 代码库 > UVa 11470 - Square Sums

UVa 11470 - Square Sums

题目:给你一个矩阵,分别计算从外到里的每层边框上的数字和。

分析:简单题。直接统计即可。

说明:注意一个宽度的情况。

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>

using namespace std;

int S[11][11];

int main()
{
	int n,t = 1;
	while (~scanf("%d",&n) && n) {
		for (int i = 1 ; i <= n ; ++ i)
		for (int j = 1 ; j <= n ; ++ j)
			scanf("%d",&S[i][j]);
		
		printf("Case %d:",t ++);
		int a = 1,b = n,c = 1,d = n;
		while (a <= b) {
			int sum = 0;
			for (int i = a ; i < b ; ++ i)
				sum += S[i][c]+S[i+1][d];
			for (int i = c ; i < d ; ++ i)
				sum += S[a][i+1]+S[b][i];
			if (a == b) sum = S[a][a];
			a ++; b --; c ++; d --;
			printf(" %d",sum);
		}
		printf("\n");
	}
    return 0;
}


分析:

UVa 11470 - Square Sums