九度OJ 1345:XXX定律之画X (递归)
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:361
解决:157
- 题目描述:
-
给你一个n,然后让你输出F(n)
规则是这样的,F(n)的输出结果是:
F(n-1) F(n-1)
F(n-1)
F(n-1) F(n-1)
F(1)的输出结果是:X
那么根据规则F(2)的输出结果应该是:
X X
X
X X
- 输入:
-
题目有多组输入,每组输入一个n(n<=7)。
当输入零或负数的时候结束输入。
- 输出:
-
对每组输入输出相应的F(n),每组输出最后一行是‘#’。
- 样例输入:
-
1
2
3
-1
- 样例输出:
-
X
#
X X
X
X X
#
X X X X
X X
X X X X
X X
X
X X
X X X X
X X
X X X X
#
思路:
设一个最大的二维字符数组,递归的打印二维数组的值。由于这个题的模板固定为X形状,因此每次更新只要更新当前边长的3倍,也就是面积的9倍的字符数组。
代码:
- #include <stdio.h>
- #include <string.h>
- #include <math.h>
- #define N (int)(pow(3, 6))
- int p[N][N];
- void set(int n, int x, int y)
- {
- if (n == 1)
- {
- p[x][y] = 1;
- return;
- }
- int s = pow(3, n-2);
- set(n-1, x, y);
- set(n-1, x+s, y+s);
- set(n-1, x+2*s, y);
- set(n-1, x, y+2*s);
- set(n-1, x+2*s, y+2*s);
- }
- void print(int n)
- {
- int size = pow(3, n-1);
- for (int i=0; i<size; i++)
- {
- for (int j=0; j<size; j++)
- {
- if (p[i][j] == 0)
- printf(" ");
- else
- printf("X");
- }
- printf("\n");
- }
- printf("#\n");
- }
- int main(void)
- {
- int n;
- while (scanf("%d", &n) != EOF)
- {
- if (n <= 0)
- break;
- memset(p, 0, sizeof(p));
- set(n, 0, 0);
- print(n);
- }
- return 0;
- }
- /**************************************************************
- Problem: 1345
- User: liangrx06
- Language: C
- Result: Accepted
- Time:80 ms
- Memory:3080 kb
- ****************************************************************/
九度OJ 1345:XXX定律之画X (递归)的更多相关文章
- 九度oj 1031 xxx定律 2009年浙江大学计算机及软件工程研究生机试真题
题目1031:xxx定律 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5153 解决:3298 题目描述: 对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n ...
- 九度OJ 1255:骰子点数概率 (递归、DP)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:316 解决:29 题目描述: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S.输入n,打印出S的所有可能的值出现的概率. 输入: 输入包 ...
- 九度OJ 1081:递推数列 (递归,二分法)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6194 解决:864 题目描述: 给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q.这里n >= 2. 求第 ...
- 【九度OJ】题目1172:哈夫曼树 解题报告
[九度OJ]题目1172:哈夫曼树 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1172 题目描述: 哈夫曼树,第一行输入一个数n, ...
- 【九度OJ】题目1475:IP数据包解析 解题报告
[九度OJ]题目1475:IP数据包解析 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1475 题目描述: 我们都学习过计算机网络, ...
- 【九度OJ】题目1073:杨辉三角形 解题报告
[九度OJ]题目1073:杨辉三角形 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1073 题目描述: 输入n值,使用递归函数,求杨 ...
- 九度oj 题目1087:约数的个数
题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...
- 九度OJ 1502 最大值最小化(JAVA)
题目1502:最大值最小化(二分答案) 九度OJ Java import java.util.Scanner; public class Main { public static int max(in ...
- 九度OJ,题目1089:数字反转
题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. ...
随机推荐
- EffectiveJava(16)复合优先于继承
为什么复合优先于继承? 1.继承违反了封装原则,打破了封装性 2.继承会不必要的暴露API细节,称为隐患.比如通过直接访问底层使p.getProperty(K,V)的键值对可以不是String类型 3 ...
- Win7 无法将快捷方式从任务栏移除怎么办
不知道是什么修改了系统的属性了.在网上找到了这个方法解决了:一:为了解决这个问题,你可以尝试下面的方法: 把以下命令分别输入到开始-运行中 1.cmd /k reg add "H ...
- 【MVC5】使用Autofac实现依赖注入
1.安装Autofac 在Package Manager Console执行如下命令: Install-Package AutofacInstall-Package Autofac.Mvc5 2.追加 ...
- SoC嵌入式软件架构设计之三:代码分块(Bank)设计原则
上一节讲述了在没有MMU的CPU(如80251.MIPS M控制器系列.ARM cortex m系列)上实现虚拟内存管理的集成硬件设计方法.新设计的内存管理管理单元要实现虚拟内存管理还须要操作系统.代 ...
- mysql热备及查询mysql操作日志
mysql热备 1 查看mysql版本,保证主库低于等于从库 2 主库配置: A 需要打开支持日志功能:log-bin=mysql-bin B 提供server-id:server-id=1 ...
- 【DB2】新建用户
1.创建用户(切换到root用户下操作) useradd -g users -d /home/qinys -s /bin/bash -m qinys 2.修改密码 passwd qinys 备注:此处 ...
- discuz !NT 3.5 论坛整合 .net 网站用户登录,退出
using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlCont ...
- iOS 实现启动屏动画(Swift实现,包含图片适配)
代码地址如下:http://www.demodashi.com/demo/12090.html 准备工作 首先我们需要确定作为宣传的图片的宽高比,这个一般是与 UI 确定的.一般启动屏展示会有上下两部 ...
- es快照和备份
注册前要注意配置文件加上 path.repo: ["/data/es_backup"] 然后重启es 不然会报错doesn't match any of the locations ...
- windows利用jconsole远程监控linux的tomcat
1.配置tomcat ① 编辑tomcat的catelina.sh文件,进入tomcat安装目录,使用命令:sudo vim bin/catalina.sh,如果是普通用户启动的,则修改damen. ...