1 条题解
-
0
C :
#include<stdio.h> int main() { int n,i,j,a[100][100],p,q,t,s; while(~scanf("%d",&n)) { p=1; t=2; q=0; a[0][0]=1; while(p<n) { for(i=p;i>=0;--i) a[q++][i]=t++; p=0; if(q>=n)break; for(j=q;j>=0;--j) a[j][p++]=t++; q=0; } s=n; for(i=0;i<n;++i) { printf("%d",a[i][0]); for(j=1;j<s;++j) printf(" %d",a[i][j]); puts("");s--; } } return 0; }
C++ :
#include<algorithm> #include<iostream> #include<cstdio> #include<cstring> using namespace std; int a[102]; void fun() { int i; a[1]=1; for(i=2;i<=103;i++) a[i]=a[i-1]+i; } int main() { int t,i,j,k,l,m,n; int s[101][101]; fun(); while(cin>>n) { memset(s,0,sizeof(s)); s[1][1]=1; m=2;k=2;i=1; while(m<=a[n]) { for(j=i;k>=1 && m<=a[n];j++,k--)//斜向下 s[j][k]=m++; for(k=k+1;j>=1 && m<=a[n];k++,j--)//斜向上 s[j][k]=m++; } for(i=1;i<=n;i++) { cout<<s[i][1]; for(j=2;j<=n;j++) if(s[i][j]!=0) { cout<<" "<<s[i][j]; } cout<<endl; } } return 0; }
- 1
信息
- ID
- 1537
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者