题目:给你一个矩阵,分别计算从外到里的每层边框上的数字和。
分析:简单题。直接统计即可。
说明:注意一个宽度的情况。
#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;
}
原文:http://blog.csdn.net/mobius_strip/article/details/43083435