2018 藍橋杯省賽 B 組模擬賽(五)矩陣求和
阿新 • • 發佈:2019-02-10
給你一個從 n×n 的矩陣,裡面填充 1 到 n×n 。例如當 n 等於 3 的時候,填充的矩陣如下。
1 2 3
4 5 6
7 8 9
現在我們把矩陣中的每條邊的中點連起來,這樣形成了一個新的矩形,請你計算一下這個新的矩形的覆蓋的數字的和。比如,n = 3 的時候矩形覆蓋的數字如下。
2
4 5 6
8
那麼當 n 等於 101 的時候,矩陣和是多少?
思路:直接求帶色部分的值即可。當時自己做的時候誤以為是求灰色部分的和,粗心了沒看到題目讓求的是矩陣和。。。
#include <iostream> #include <math.h> using namespace std; int a[1000][1000]; int main() { int n,m,t,sum; cin>>n; t = 1; sum = 0; m = n / 2; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { a[i][j] = t++; } } for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if(i <= m && j >= m - i && j <= m + i) //計算上半三角的和(包括中線部分) { sum += a[i][j]; } else if(i > m && j >= i - m && j <= n - (i - m + 1)) //計算下半三角的和(不包括中線部分) { sum += a[i][j]; } } } cout<<sum; return 0; }