#include <iostream> using namespace std; #define M 100 int a[M][M]; void pt( int n ) { for ( int i = 0; i < n; i++ ) { for ( int j = 0; j < n; j++ ) { cout << a[i][j] << " "; //printf("%2d ",a[i][j]); } cout << endl; } } /* 圆圈循环 */ int main() { int n = 5; cin>>n; int sn = n * n; a[n/2][n/2]=1; for ( int i = 1; i <n/2+1; i++ ) { for ( int j = n - i; j >= i-1; j-- ) { a[n - i][j] = sn--; } for ( int j = n - i; j > i; j-- ) { a[j - 1][i-1] = sn--; } for ( int j = i-1; j <= n - i; j++ ) { a[i-1][j] = sn--; } for ( int j = i; j <n - i; j++ ) { a[j][n-i] = sn--; } } pt(n); int sum=0; for(int i=0;i<n;i++) { sum+=a[i][n-1-i]; sum+=a[i][i]; } cout<<sum-1<<endl; return(0); }
由于对数据的不熟练,已经忘记了大多数的步骤了,需要学习的还有很多。
可以在Excel中方便的进行操作。展示自己的操作过程。
四个边对应起来看,可以更加方便的进行,对比。for循环难点在于变量的变化过程的把控,通过具体的对比会方便很多的。