• 【白银组】codevs_1160 蛇形矩阵


    #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循环难点在于变量的变化过程的把控,通过具体的对比会方便很多的。

  • 相关阅读:
    c++11:智能指针
    C++11:右值引用
    结构体与联合体
    数组与指针的区别?
    堆和栈的理论知识
    笔试点杂烩
    2、8、10、16进制输出
    单链表的反转
    签约新国都
    Linux下使用autoconf 和 automake 编译简单的HelloWorld
  • 原文地址:https://www.cnblogs.com/hxh88/p/9250533.html
Copyright © 2020-2023  润新知