52. 铺地板
- 52. 铺地板 推荐度:
- 相关推荐
52. 铺地板
背景:
你是一名室内装潢工程队的配料员。你的伙伴们喜欢采用“之”字型的方式铺大理石地砖,图案如下:
1 | 2 | 6 | 7 | 15 |
3 | 5 | 8 | 14 | 16 |
4 | 9 | 13 | 17 | 22 |
10 | 12 | 18 | 21 | 23 |
11 | 19 | 20 | 24 | 25 |
学了 C 语言以后,你决定编写一个程序,帮助你的同伴生成这样的图形。
输入:
方阵N的大小。
输出
方阵。
#include "stdio.h"#define MAX 100int main(int argc, char **argv)
{int n , arr[MAX][MAX];scanf("%d", &n);getchar();int num = 1; //自增的数字int state = 0; //状态,对应数字递增的方向int i = 1, j = 1;if(1==n){printf(" 1\n");return 0;}if(0==n%2){while (1){//上三角arr[i][j] = num++;if (i == 1 || j == 1){state = (state + 1) % 4;}//碰到边缘,改变状态,变成下一下一种状态,即下一种方向if (i == 1 && j == n){break;} //上半部分完毕 switch (state){ case 0:i--;j++;break; //右上 case 1:j++;break; //向右 case 2:i++;j--;break; //左下 case 3:i++;break; //向下}} state = 0;i = 2;j = n - 1;//下三角部分while (1){arr[i][j] = num++;if (i == n || j == n){state = (state + 1) % 4;}//碰到边缘,改变状态,变成下一下一种状态,即下一种方向if (i == n && j == n){break;}switch (state){case 2:i--;j++;break;//右上case 1:j++;break; //向右case 0:i++;j--;break;//左下case 3:i++;break;//向下}}}else{//上三角部分while (1){arr[i][j] = num++;if (i == 1 || j == 1) //碰到边缘,改变状态state = (state + 1) % 4; //变成下一下一种状态,即下一种方向if (i == 1 && j == n)break;switch (state){case 0: //右上i--;j++;break;case 1: //向右j++;break;case 2: //左下i++;j--;break;case 3: //向下i++;break;} }state = 0;i = 2; j = n;//下三角部分while (1){arr[i][j] = num++;if (i == n || j == n) //碰到边缘,改变状态state = (state + 1) % 4; //变成下一下一种状态,即下一种方向if (i == n && j == n)break;switch (state){case 3: //右上i--;j++;break;case 2: //向右j++;break;case 1: //左下i++;j--;break;case 0: //向下i++;break;} }}//输出for (i = 1; i <= n; i++){for (j = 1; j <= n; j++){if (j != n)printf("%2d ", arr[i][j]);elseprintf("%2d", arr[i][j]);}printf("\n");}return 0;
}
最新文章
- VirtualBox中Windows 7虚拟机无法全屏显示怎么办?
- linux 下dump的使用
- 易用性测试详解
- Windows一键删除指定文件或文件夹
- java jacob api
- n皇后问题回溯法
- HTK语音识别工具包的安装和编译
- [日记] 招行的服务就是不错。。。。
- 用 CaptureScreenshot捕捉游戏画面(截图,截屏)
- 第五章
- ext4 笔记一(与ext3比较)
- CSS3实现图片的3D旋转效果
- TCPIP协议——TCP协议
- TCPUDP、TCPIP区别
- 下列c语言表达式能正确表达ch是空格或者回车的是,c语言上机选择题题及答案...
- HashTable详解、源码、扩容、深入理解HashTable、HashTable多线程并发问题
- SimpleDateFormat api
- 网页弹出对话框的几种代码
- js“弹出对话框”和“弹出窗口”详解
- php实现远程下载文件到本地服务器指定目录