蓝桥杯-- 打印 LOGO
打印 LOGO
现在小学生也在学习基本的编程,课程目标是让小学生能够有基本的算法思想,并不涉及复杂的数据和实现细节与原理。
LOGO 语言就非常适合小学生学习,它通过绘图的方式来直观的表现出如何用程序代码控制事物。例如控制台上初始给出一个点,使用语句 FD 1/1 表示将控制台上的点 Forward 1/1 的距离,即,向当前方向移动 1 的距离,这样就画出一条线段。
语句 LD 60 则表示当前朝向向左转 60 度,接着再使用语句 FD 1/1 就画出一条与之前的直线夹角为 120 度的一条线段,这时控制台上就有绘制出了一条折线段。现在的任务是输出一段能绘制分形的 LOGO 语言的程序代码。
如果你还对分形不了解,下面就先介绍一下分形:分形(Fractal) 是一个几何形状可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状,即具有自相似的性质。自然界中一定程度上具有分形的性质的事物有云朵、闪电、植物根系、雪花等等。著名的科赫曲线就是一种分形,它绘制的是形态类似雪花的图案。以下是 0 阶到 3 阶的科赫曲线:
要求你的程序输出 LOGO 语句,使它画出 N 阶图示的分形曲线。
Input
11 个数字 nn,表示图形的阶数 (0<n<10)(0<n<10)
Output
绘制图形的 LOGO 指令
Example
Input
1
Output
FD 1/3
LD 60
FD 1/3
LD 240
FD 1/3
LD 60
FD 1/3
题解: 首先把 2阶的写出来, 看看有什么规律, 发现 2 阶的是由 1阶 + (LD 60 + 1阶 +LD 240 +1阶 +LD 60 ) + 1阶 构成 , 上面一阶的图像是 一 直线 +( 三角 ) + 直线构成 ,也就是 0阶 + ( LD 60 + 0阶 + LD 240 + 0 阶 + LD 60 ) +0 阶 , 而 上面所描述的0阶 ,1阶 , ... . n阶 就是 FD d (1 / pow(3, 阶数) ) ;
所以得到 , N 阶的图像是 , N-1 阶 + (输出(LD 60 ) + N-1 阶 + 输出(LD 240 ) + N-1阶 + LD60 ) + N-1 阶 .
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std ;
const int MAX = 20 ;
char order1[MAX] ="LD 60" ;
void Forword(int n )
{printf("FD 1/%d\n",n);return ;
}
void dfs(int n ,int d )
{if(n == 1 ){Forword( d );printf("%s\n",order1) ;Forword( d );printf("LD 240\n");Forword( d );printf("%s\n",order1) ;Forword( d );return ;}dfs(n-1 , d);cout<<order1<<endl;dfs(n-1 , d);printf("LD 240\n") ;dfs(n-1 , d);cout<<order1<<endl;dfs(n-1, d);}
int main()
{int n ;cin >> n ;dfs(n,int(pow(3,n))) ;return 0 ;
}
蓝桥杯-- 打印 LOGO相关推荐
- 关于 蓝桥杯 打印六芒星 的 另类方法
关于 蓝桥杯 打印六芒星 的 另类方法 刚入门不久的人也能做出来的一种方法 或者了解很深的人也可能不知道的一个方法 原题如下 [输入格式] 输入一行包含一个整数 n. [输出格式] 输出一个六芒星,表 ...
- java中的冰雹数,java实现第七届蓝桥杯打印数字
打印数字 打印数字 小明写了一个有趣的程序,给定一串数字. 它可以输出这串数字拼出放大的自己的样子. 比如"2016"会输出为: 00000 1 6666 2 0 0 1 1 6 ...
- 蓝桥杯-打印十字图-java
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...
- 蓝桥杯-打印菱形/字符串截断
字符串截断 package august20;public class 字符串截断 {public static void main(String[] args) {String a="he ...
- java实现第七届蓝桥杯打印数字
打印数字 打印数字小明写了一个有趣的程序,给定一串数字. 它可以输出这串数字拼出放大的自己的样子.比如"2016"会输出为:00000 1 66662 0 0 1 1 6 0 0 ...
- 蓝桥杯—打印十字图—Java
1.问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示(可参见p1.jpg) 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数. 为了能准确比对空 ...
- c语言奇怪的分式11,蓝桥杯-奇怪的分式-java
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...
- 蓝桥杯大赛青少年创意编程 第十一届 省赛 C++组试题 第1题 双面打印
/* 蓝桥杯大赛青少年创意编程 第十一届 省赛 C++组试题 第1题 双面打印 题目描述在2020年这个漫长的寒假里,虽然小蓝和他的同学们都在家里,但依旧通过网课的方式坚持学习,而老师们也依旧会布置作 ...
- [蓝桥杯]横向打印二叉树 Python满分解法
[蓝桥杯]横向打印二叉树 Python满分解法 #树的结点类定义 class Node:def __init__(self,left=0,right=0,w=0,line=0,leng=0):self ...
最新文章
- 泛在电力物联网(能源互联网+物联网)浅析
- Android数据库高手秘籍(三)——使用LitePal升级表
- jquery.form 和MVC4做无刷新上传DEMO
- C语言用DFS实现找到图的所有路径(邻接矩阵实现)
- java_OA管理系统(一):Servlet总结案例仿网络聊天室
- leetcode-67-二进制求和
- 动态规划--图像压缩
- C++学习之路 | PTA乙级—— 1052 卖个萌 (20 分)(精简)
- 大数据基础学习三:Ubuntu下安装VMware Tools超详细步骤及需要注意的问题(以ubuntu-18.04.3、Mware Workstation 15.1.0 Pro为例)
- C# -Asp.Net.SignalR.Core之Hub
- 2015年江苏省计算机c语言二级考试,2015江苏省计算机等级考试C语言部分试题.doc...
- 实际测试中,经常发现摄像头断线几分钟
- 如何“复活”一个人,这里有一份最全的技术路线图谱丨钛媒体深度
- 视频分配器中提高信号完整性的方法
- 【Python入门教程】第45篇 集合的并集
- dhcp服务器是如何进行租约信息的更新的,DHCP服务器
- 使用html和css的一些案列(小米官网)
- springboot启动卡住问题解决
- C++综合项目-boost搜索引擎
- 教你使用日文输入法-日文输入显示不用愁