Dynamic Morphing Square(动态变形矩阵)
题目描述:


解题思路:
先对输入的N进行判断,是否不小于3,如果小于3,需要继续输入一个新的数,知道输入的N比3大。
第一个打印的矩阵,*号为最外面一圈,其余全为-。
第二个打印的矩阵,*号向内缩减了一圈。
依次递减,直到*号缩到最内部,然后又开始往外扩张。
所以我们设置max和min变量记录每次需要打印*的位置,和第几次打印也是有关的。所以设置变量run记录打印的次数。
n阶矩阵当打印了n次后,继续循环,所以将run重置为0;
n的阶数如果是奇数,需要多循环一次。
代码如下:
#include "stdio.h"
#include "windows.h" int pattern(int n){
int i, j, run;
int max, min;
run = ;
max = n - ;
min = ; while(){
for (i = ; i < n; i++){ for (j = ; j < n; j++)
{
if ((min <= max && min <= i && i <= max && min <= j && j <= max) && (i == min || i == max || j == min || j == max))
printf("*");//每次打印,只有一圈*号,既a[i][i]和a[n-i][n-i]之间
else
printf("-");
}
printf("\n");
}
printf("\n");
if (run < n / ){
max--;
min++;
}
if (run >= n / ){
max++;
min--;
}
Sleep();//延迟0.5s打印下一个矩阵
run++;
if (run > n- && n%==)
run = ;
if (n % != && run>=n-)//判断输入n的奇偶,是基数提前将run重置成0
run = ;
} }
void main(){
int n;
printf("Input pattern size N :"); while(scanf_s("%d",&n)){ if (n < ){
printf("warning: pattern size should be at least 3!\n");
printf("Input pattern size N :");
}
else
break;
} pattern(n); scanf_s("%d", &n);
}
运行结果:


源码下载地址:
http://pan.baidu.com/s/1bnDhl1t
Dynamic Morphing Square(动态变形矩阵)的更多相关文章
- Azure SQL Database (23) Azure SQL Database Dynamic Data Masking动态数据掩码
<Windows Azure Platform 系列文章目录> 我们在使用关系型数据的时候,有时候希望: - 管理员admin,可以查看到所有的数据 - 普通用户,某些敏感字段,比如信用卡 ...
- 搭建Dynamic Web Project(动态web项目)的springmvc工程2
本文转载自:http://blog.csdn.net/typa01_kk/article/details/45905129 此篇为“创建Dynamic Web Projec工程,”搭建Dynamic ...
- 搭建Dynamic Web Project(动态web项目)的springmvc工程1
本文转载自:http://blog.csdn.net/typa01_kk/article/details/45902955 此篇创建Dynamic Web Projec工程(动态web项目),下一篇, ...
- luogu P4719 【模板】动态 DP 矩阵乘法 + LCT
方法二:LCT+矩阵乘法 上文中,我们用线段树来维护重链上的各种矩阵转移. 第二种方法是将树链剖分替换为动态树. 我们知道,矩阵乘法 $\begin{bmatrix} F_{u,0} & F_ ...
- Dynamic Time Warping 动态时间规整算法
转自:http://www.cnblogs.com/luxiaoxun/archive/2013/05/09/3069036.html Dynamic Time Warping(DTW)是一种衡量两个 ...
- c# json转换成dynamic对象,然后在dynamic对象中动态获取指定字符串列表中的值
using Newtonsoft.Json;using System;using System.Collections.Generic;using System.Linq;using System.T ...
- ZOJ 2112 Dynamic Rankings (动态第k大,树状数组套主席树)
Dynamic Rankings Time Limit: 10 Seconds Memory Limit: 32768 KB The Company Dynamic Rankings has ...
- ZOJ 2112 Dynamic Rankings (动态第 K 大)(树状数组套主席树)
Dynamic Rankings Time Limit: 10 Seconds Memory Limit: 32768 KB The Company Dynamic Rankings has ...
- SpringBoot+Dynamic多数据源动态切换
最近做了个小模块,需求就是项目同时读取三个数据库,操作数据.并不是分库分表,只用定时跑,不需要对外提供接口. 技术选型:SpringBoot + Mybatis Plus(Mybatis) + Dyn ...
随机推荐
- JavaScript基础---语言基础(4)
函数,对象和数组 学习要点: 1.函数声明 2.return返回值 3.arguments对象 4.Object类型 5.Array类型 6.对象中的方法 函数是定义一次但却可以调用或执行任意多次的一 ...
- Java-EnumSet
如下 package 集合类.Set类; /** * Set不允许重复数据 */ /** * 这个类是1.5开始有的, * 目前个人使用量几乎为零,很少使用 * 其使用方式和普通的Set没有区别,只是 ...
- Java Filter过滤器的简单总结
1.Filter的介绍 Filter技术是servlet 2.3新增加的功能.它能够对Servlet容器的请求和响应对象进行检查和修改. Filter本身并不生成请求和响应对象,只是提供过滤功能. F ...
- GitHub 优秀的 Android 开源项目
转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...
- 【BZOJ-3172】单词 AC自动机
3172: [Tjoi2013]单词 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2567 Solved: 1200[Submit][Status ...
- POJ2253 Frogger
Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 34865 Accepted: 11192 Descrip ...
- Xcon2014 && Geekpwn2014
目录 . 链接器与加载器技术在保护壳上的应用 . android应用市场中的大规模漏洞挖掘 . android模拟躲避检测和应对 . 内核链表的奥秘 . 信号的可发现性 -- wifi之外我们还能做什 ...
- myeclipse 部署应用
昨天把MyEclipse10给安装上了,今天想在MyEclipse下启动Tomcat并在浏览器中看到写的Web页面,但是当在浏览器中输入地址时,出现了404错误,出现这个错误的原因是因为没有找到指定的 ...
- JSP 九个隐含JSP对象
输入输出对象:request.response.out. 作用域通信对象:session.application.pageContext servlet对象:page.config 错误对象:exce ...
- hihocoder 1181 欧拉路.二
传送门:欧拉路·二 #1181 : 欧拉路·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回中小Hi和小Ho控制着主角收集了分散在各个木桥上的道具,这些道具其 ...