本文共 688 字,大约阅读时间需要 2 分钟。
#include #include #include #include #include using namespace std;int matrix[10000+1][10000+1];void getMandN(int &m,int &n,int num){ int sq=sqrt(num*1.0); n=m=sq; while(m*n!=num) { while(m*n >num; std::vector v; for(int i=0;i >t; v.push_back(t); } sort(v.begin(),v.end(),greater ()); getMandN(m,n,num); int i=1,j=1,k=0,layer=0; while(k =1+layer)matrix[i][j--]=v[k++]; ++j;--i; while(k =2+layer)matrix[i--][j]=v[k++]; ++i;++j; ++layer; } for(int i=1;i<=m;++i) { for(int j=1;j<=n;++j) { if(j!=n)cout< <<" "; else cout< <
转载于:https://www.cnblogs.com/xLester/p/7570299.html