用麦哈顿距离来计算 <=4.5。原点在i=5.5,j=0位置。
#include<cstdio>
#include<cmath>
int main(){
char a;
scanf("%c", &a);
double n[15][15];
for(int i = 0; i <12 ;i++){
for(int j = 0; j < 12; j++){
scanf("%lf", &n[i][j]);
}
}
double sum = 0;
int c = 0;
for(int i = 0; i < 12; i++){
for(int j = 0; j < 12; j++){
if((abs(5.5-i)+j) <= 4.5){ //麦哈顿距离
sum +=n[i][j];
c++;
}
}
}
if(a == 'S') printf("%.1lf", sum);
else printf("%.1lf", sum / c);
return 0;
}
这个表是怎么弄的?
excel
用高中数学的线性规划会不会更快并且更好接受一点?
厉害
牛皮
但是这种方法应该是跑得最慢的了
感谢
曼哈顿距离,哎呀我怎么没想到阿,膜拜大佬!!!
i表示数组下标的话,为什么可以取5.5呢
为了上下对称取5.5比较好,否则i<=5的时候,你要6-i,i >5的时候你得5-i.