• 【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;
    }
    
    
  • 相关阅读:
    border-radius
    快速搭建本地服务器
    sublime中侧边栏字体大小的设置
    关于git中git pull --rebase中的一些坑
    css中外边距合并
    php中$row=mysql_fetch_row()出错问题
    学习笔记2
    AMD Ryzen的性价比
    javascript变量提升
    手机网页里的模态对话框
  • 原文地址:https://www.cnblogs.com/hebust/p/9496810.html
Copyright © 2020-2023  润新知