题目描述:

解题思路:

先对输入的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(动态变形矩阵)的更多相关文章

  1. Azure SQL Database (23) Azure SQL Database Dynamic Data Masking动态数据掩码

    <Windows Azure Platform 系列文章目录> 我们在使用关系型数据的时候,有时候希望: - 管理员admin,可以查看到所有的数据 - 普通用户,某些敏感字段,比如信用卡 ...

  2. 搭建Dynamic Web Project(动态web项目)的springmvc工程2

    本文转载自:http://blog.csdn.net/typa01_kk/article/details/45905129 此篇为“创建Dynamic Web Projec工程,”搭建Dynamic ...

  3. 搭建Dynamic Web Project(动态web项目)的springmvc工程1

    本文转载自:http://blog.csdn.net/typa01_kk/article/details/45902955 此篇创建Dynamic Web Projec工程(动态web项目),下一篇, ...

  4. luogu P4719 【模板】动态 DP 矩阵乘法 + LCT

    方法二:LCT+矩阵乘法 上文中,我们用线段树来维护重链上的各种矩阵转移. 第二种方法是将树链剖分替换为动态树. 我们知道,矩阵乘法 $\begin{bmatrix} F_{u,0} & F_ ...

  5. Dynamic Time Warping 动态时间规整算法

    转自:http://www.cnblogs.com/luxiaoxun/archive/2013/05/09/3069036.html Dynamic Time Warping(DTW)是一种衡量两个 ...

  6. c# json转换成dynamic对象,然后在dynamic对象中动态获取指定字符串列表中的值

    using Newtonsoft.Json;using System;using System.Collections.Generic;using System.Linq;using System.T ...

  7. ZOJ 2112 Dynamic Rankings (动态第k大,树状数组套主席树)

    Dynamic Rankings Time Limit: 10 Seconds      Memory Limit: 32768 KB The Company Dynamic Rankings has ...

  8. ZOJ 2112 Dynamic Rankings (动态第 K 大)(树状数组套主席树)

    Dynamic Rankings Time Limit: 10 Seconds      Memory Limit: 32768 KB The Company Dynamic Rankings has ...

  9. SpringBoot+Dynamic多数据源动态切换

    最近做了个小模块,需求就是项目同时读取三个数据库,操作数据.并不是分库分表,只用定时跑,不需要对外提供接口. 技术选型:SpringBoot + Mybatis Plus(Mybatis) + Dyn ...

随机推荐

  1. 项目笔记---Windows Service调用Windows API问题

    概要 此文来自于最近一个“诡异”的Windows API调用发现Windows Service在调用某些Windows API的过程中失效,在经过漫长的Baidu,之后终于在StackOverFlow ...

  2. 第一章 : javaScript框架分类及主要功能

      从内部架构和理念划分,目前JavaScript框架可以划分为5类. 第一种是以命名空间为导向的类库或框架,如果创建一个数组用new Array(),生成一个对象用new Object(),完全的j ...

  3. iBATIS sqlMapConfig配置详解

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC & ...

  4. [转]不再以讹传讹,GET和POST的真正区别

    原文地址:http://www.nowamagic.net/librarys/veda/detail/1919 如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个 ...

  5. BZOJ 2435 道路修建 NOI2011 树形DP

    一看到这道题觉得很水,打了递归树形DP后RE了一组,后来发现必须非递归(BFS) 递归版本84分: #include<cstdio> #include<cstring> #in ...

  6. 【Gym 100015A】Another Rock-Paper-Scissors Problem

    题 题意 Sonny出石头剪刀布的猜拳策略是 先出R,然后每连续两段都是打败前一段的出拳, 现在问你第n回合打败他要出什么. 分析 他的策略 R P S PSR  SRP PSRSRPRPS SRPR ...

  7. UTL_FILE详解

    包UTL_FILE 提供了在操作系统层面上对文件系统中文件的读写功能.非超级用户在使用包UTL_FILE中任何函数或存储过程前必须由超级用户授予在这个包上的EXECUTE权限.例如:我们使用下列命令对 ...

  8. easyVS

    easyVS 详细说明点这里

  9. Nginx Installation、Configuration、Rreverse Proxy、Load Balancing Learning

    目录 . Nginx简介 . Nginx安装部署 . Nginx安全配置 . Nginx反向代理实践 . Nginx负载均衡实践 1. Nginx简介 0x1: Nginx的基本特性 Nginx(&q ...

  10. 设置div居中

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...