今天没事想起了比赛时的编程第一题 就靠回忆又做了一遍
题目要求:输入一个5-20的数 输出一个边长为该数的螺旋三角例如输入4屏幕输出
1 2 3 4
9 10 5
8 6
7
思路就是把整个图形分为若干层逐层输入
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include <iostream> #include <iomanip> using namespace std; void main() { int n,m,i=1,j=1,u=1,N[20][20]; cin>>n; for(m=1;m<=n-2;m++) { while(j<=n-2*m+2) { N[i][j]=u++; j++; } j--;j--;i++; while(i<=n-2*m+2) { N[i][j]=u++; j--; i++; } i--;i--;j++; while(i>m) { N[i][j]=u++; i--; } i++; j++; } for(i=1;i<=n;i++) { for(j=1;j<=n-i+1;j++) cout<<setw(3)<<N[i][j]; cout<<endl; } }
|