zoukankan      html  css  js  c++  java
  • 【PAT】B1050 螺旋矩阵(25 分)

    实在不觉得递归等方式有什么简单的地方,没错我就是用的最笨的方法模拟。
    和我一样的小白看代码应该很容易理解。

    #include<stdio.h>
    #include<math.h>
    #include<algorithm>
    using namespace std;
    int N;
    int main(){
        int m,n;scanf("%d",&N);
        int temp=sqrt(N),arr[N];
    	for(int i=0;i<N;i++){//输入数据
            scanf("%d",&arr[i]);
        }
    	sort(arr,arr+N);
        for(int i=temp;i>=0;i--){//求出hang数》lie数
            if(N%i==0){
                n=i;m=N/i;
                break;
            }
        }
    	N--;
        int put[m][n],left=0,right=n-1,up=0,down=m-1;
        while(N>=0){
            for(int i=left;i<=right;i++)
    			put[up][i]=arr[N--];
    		if(left<=right)up++;
    		if(N<0) break;
    		for(int i=up;i<=down;i++)
    			put[i][right]=arr[N--];
    		if(N<0) break;
    		if(up<=down)right--;
    		for(int i=right;i>=left;i--)
    			put[down][i]=arr[N--];
    		if(N<0) break;
    		if(right>=left)down--;
    		for(int i=down;i>=up;i--)
    			put[i][left]=arr[N--];
    		if(N<0) break;
    		if(down>=up)left++;
        }
        for(int i=0;i<m;i++){
            if(i!=0) printf("
    ");
            for(int j=0;j<n;j++){
    			if(j!=0) printf(" ");
                printf("%d",put[i][j]);
            }
        }
    	getchar();
        return  0;
    }
    
    
  • 相关阅读:
    Node
    HTTP权威指南
    一些乱七八糟的思考积累
    有限状态机
    奇怪问题引用到其它文件夹项目文件方法
    dijkstra+堆优化
    高精度
    BUAA 1301 最短路
    阿里云服务器ECS(Centos8)下安装和配置python3.8
    Cheat Sheet
  • 原文地址:https://www.cnblogs.com/hebust/p/9496810.html
Copyright © 2011-2022 走看看