九度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. ...
随机推荐
- Myeclipse 编译等级
1.Java compiler level does not match the version of the installed Java project facet. 问题描述:编译等级不匹配 解 ...
- python读写文件write和flush
打开文件用open,该函数创建一个文件对象,这将用来调用与之关联的其他支持方式. file object = open(file_name [, access_mode][, buffering]) ...
- 如何在阿里云服务器搭建FTP服务器,在本地电脑连接并操作
首先你需要有一个阿里云的ECS服务器 并且开通了公网宽带(话说也不贵,开来玩玩还是可以的,第一次买会比较便宜,第二次买1M的宽带两天是九毛多吧~) 开通了宽带之后,ECS服务器就可以上网了 如果嫌弃阿 ...
- 12. 改变JDK编译版本【从零开始学Spring Boot】
spring Boot在编译的时候,是有默认JDK版本的,如果我们期望使用我们要的JDK版本的话,那么要怎么配置呢? 这个只需要修改pom.xml文件的<build>-- <plug ...
- Node.js 极简入门Helloworld版服务器例子
粗浅得很,纯属备忘. // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http"); ...
- JavaWeb Cookie详解
代码地址如下:http://www.demodashi.com/demo/12713.html Cookie的由来 首先我们需要介绍一下,在Web开发过程中为什么会引入Cookie.我们知道Http协 ...
- android应用中插入admob广告
Step One 登陆admob,注册用户 直接登陆http://www.admob.com/,用google的账号登陆 Step Two 登陆admob后,在站点和应用程序选项中 选择并添加and ...
- 自定义ListView和GridView
1 http://blog.chengyunfeng.com/?p=465 2
- sql2000实现row_number
一.以PersonID,classid,dt_ClassData为条件进行分组,每个小组加序号,row_number在sql2005中不可用 方法一.sql2000及以上版本--以PersonID,c ...
- python抓取51CTO博客的推荐博客的全部博文,对标题分词存入mongodb中
原文地址: python抓取51CTO博客的推荐博客的全部博文,对标题分词存入mongodb中