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 ...
随机推荐
- 汇顶科技&&硬件类笔试题目
汇顶科技硬件类笔试题目,每年都有变化,但是题目类型都差不多.汇顶科技17年在南京地区大概招了20个左右吧,给的待遇还是不错的,工作地点上海深圳
- 【OpenCV入门教程之二】OPENCV3 开源之美 — 编译源代码、配置opencv_contrib
为什么要配置opencv_contrib? opencv3.0版本 功能更加模块块,一些功能模块不够完善,等足够完善在merge到主分支中,而我们图像识别中要用到的SIFT等算法被封装在xfeactu ...
- java5中原子型操作类的应用
java.util.concurrent.atomic包中提供了对基本数据类型,对数组中的基本数据类型和类中的基本数据类型的操作.详情见API. 下面实例简单介绍AtomicInteger类的使用: ...
- java.lang.NoSuchFieldError: deferredExpression
处理:遇到这个异常的时候是用jstl标签,是版本问题,由于MyEclipse添加Java EE5,其中自动包括了jstl1.2的版本,lib中又存在一个jstl1.1.2的jar包,把旧版本的删掉就可 ...
- Nginx 实现AJAX跨域请求
在工作中遇到跨域请求的问题: AJAX从一个域请求另一个域会有跨域的问题.那么如何在nginx上实现ajax跨域请求呢?要在nginx上启用跨域请求,需要添加add_header Access-Con ...
- Request获取信息总结
Request.ServerVariables("REMOTE_ADDR") '获取访问IPRequest.ServerVariables("LOCAL ...
- codevs2606 约数和问题
题目描述 Description Smart最近沉迷于对约数的研究中. 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f(X) ...
- POJ2299 Ultra-QuickSort
Description In this problem, you have to analyze a particular sorting algorithm. The algorithm proce ...
- Tomcat Can't load AMD 64-bit .dll on a IA 32
Java.lang.UnsatisfiedLinkError: C:\apache\apache-tomcat-7.0.14\bin\tcnative-1.dll: Can't load AMD 64 ...
- C#图片读取和保存
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...