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;
    }
    
    
  • 相关阅读:
    快速排序
    Web总结
    浏览器兼容性问题汇总
    AngularJS理论基础
    预处器的对比——Sass、LESS.
    js事件知识整理
    Java script基础
    重拾nodeJs
    全国城市三级联动
    js 获取地址栏参数
  • 原文地址:https://www.cnblogs.com/hebust/p/9496810.html
Copyright © 2011-2022 走看看