求n阶方阵从外到内四周k圈上的数字之和。
输入格式:
输入数据的第一行为一个正整数T,表示测试数据的组数。然后是T组测试数据。
每组测试数据的第一行为两个整数n和k(3≤n≤15,1≤k<n/2),n表示方阵的阶数,k表示方阵从外到内四周的圈数。然后输入n行,每行n个整数。
输出格式:
对于每组测试,输出的形式为“sum=num”,其中num为所求的和值(结果保证小于231)。注意:引号不必输出。
输入样例:
2
3 1
9 8 7
3 4 8
7 5 6
5 2
9 2 5 7 2
2 6 7 2 7
2 8 5 1 4
9 6 8 7 7
3 7 9 3 8
输出样例:
sum=53
sum=131
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
这道题看似简单,其实中间有个问题,那就是k的用处。
k不是总圈数,而是我们需要求的圈数,但是直接来求比较复杂,我们可以转为成所有数相加后减去我们不需要的部分。
数组的行和列都是下标为0开始,所以我们最上方的边界就是k,下方的边界是n-1-k。
思路有了,代码就非常简单了。
#include<stdio.h>
int main(void){
int T,n,k;
double num,c,d,f;
scanf("%d",&T)