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 ...
随机推荐
- 项目笔记---Windows Service调用Windows API问题
概要 此文来自于最近一个“诡异”的Windows API调用发现Windows Service在调用某些Windows API的过程中失效,在经过漫长的Baidu,之后终于在StackOverFlow ...
- 第一章 : javaScript框架分类及主要功能
从内部架构和理念划分,目前JavaScript框架可以划分为5类. 第一种是以命名空间为导向的类库或框架,如果创建一个数组用new Array(),生成一个对象用new Object(),完全的j ...
- iBATIS sqlMapConfig配置详解
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig PUBLIC & ...
- [转]不再以讹传讹,GET和POST的真正区别
原文地址:http://www.nowamagic.net/librarys/veda/detail/1919 如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个 ...
- BZOJ 2435 道路修建 NOI2011 树形DP
一看到这道题觉得很水,打了递归树形DP后RE了一组,后来发现必须非递归(BFS) 递归版本84分: #include<cstdio> #include<cstring> #in ...
- 【Gym 100015A】Another Rock-Paper-Scissors Problem
题 题意 Sonny出石头剪刀布的猜拳策略是 先出R,然后每连续两段都是打败前一段的出拳, 现在问你第n回合打败他要出什么. 分析 他的策略 R P S PSR SRP PSRSRPRPS SRPR ...
- UTL_FILE详解
包UTL_FILE 提供了在操作系统层面上对文件系统中文件的读写功能.非超级用户在使用包UTL_FILE中任何函数或存储过程前必须由超级用户授予在这个包上的EXECUTE权限.例如:我们使用下列命令对 ...
- easyVS
easyVS 详细说明点这里
- Nginx Installation、Configuration、Rreverse Proxy、Load Balancing Learning
目录 . Nginx简介 . Nginx安装部署 . Nginx安全配置 . Nginx反向代理实践 . Nginx负载均衡实践 1. Nginx简介 0x1: Nginx的基本特性 Nginx(&q ...
- 设置div居中
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...