首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

尝试用lisp递归打印三角形

Lisp是一种函数式编程语言,具有强大的递归能力。通过使用递归,我们可以实现打印三角形的功能。

下面是使用Lisp递归打印三角形的示例代码:

代码语言:txt
复制
(defun print-triangle (n)
  (if (<= n 0)
      nil
      (progn
        (print-line n)
        (print-triangle (- n 1)))))

(defun print-line (n)
  (if (<= n 0)
      nil
      (progn
        (format t "* ")
        (print-line (- n 1)))))

(print-triangle 5)

上述代码中,我们定义了两个函数:print-triangleprint-lineprint-triangle函数用于打印三角形,接受一个参数n表示三角形的高度。print-line函数用于打印每一行的星号。

print-triangle函数中,我们首先判断n是否小于等于0,如果是,则递归结束。否则,我们先调用print-line函数打印当前行的星号,然后递归调用print-triangle函数打印下一行。

print-line函数中,我们首先判断n是否小于等于0,如果是,则递归结束。否则,我们使用format函数打印一个星号,并递归调用print-line函数打印下一个星号。

通过调用(print-triangle 5),我们可以打印一个高度为5的三角形。

这种递归打印三角形的方法可以应用于各种编程语言中,不仅限于Lisp。对于其他编程语言,只需将代码进行相应的语法转换即可实现相同的功能。

腾讯云相关产品和产品介绍链接地址:

请注意,以上产品仅为示例,实际选择产品时应根据具体需求进行评估和选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 软件测试等价类划分实例_软件测试原则

    某程序规定:“输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 … “。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。) 分析题目中给出和隐含的对输入条件的要求: (1)整数 (2)三个数 (3)非零数 (4)正数 (5)两边之和大于第三边 (6)等腰 (7)等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 ” 非三角形 ” 。 2)如果三条边相等即满足条件(7),则程序输出为 ” 等边三角形 ” 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 ” 等腰三角形 ” 。 4)如果三条边都不相等,则程序输出为 ” 一般三角形 ” 。 列出等价类表并编号

    01

    算法——(转)动态规划入门

    动态规划相信大家都知道,动态规划算法也是新手在刚接触算法设计时很苦恼的问题,有时候觉得难以理解,但是真正理解之后,就会觉得动态规划其实并没有想象中那么难。网上也有很多关于讲解动态规划的文章,大多都是叙述概念,讲解原理,让人觉得晦涩难懂,即使一时间看懂了,发现当自己做题的时候又会觉得无所适从。我觉得,理解算法最重要的还是在于练习,只有通过自己练习,才可以更快地提升。话不多说,接下来,下面我就通过一个例子来一步一步讲解动态规划是怎样使用的,只有知道怎样使用,才能更好地理解,而不是一味地对概念和原理进行反复琢磨。

    01

    软件测试实战演习

    1.某程序设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。 1)划分等价类并编号,下表等价类划分的结果 输入等价类 有效等价类 无效等价类 日期的类型及长度 ①6位数字字符 ②有非数字字符 ③少于6位数字字符 ④多于6位数字字符 年份范围 ⑤在1990~2049之间 ⑥小于1990 ⑦大于2049 月份范围 ⑧在01~12之间 ⑨等于00 ⑩大于12 2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下: 测试数据 期望结果 覆盖的有效等价类 200211 输入有效 ①、⑤、⑧ 3)为每一个无效等价类设计一个测试用例,设计结果如下: 测试数据 期望结果 覆盖的无效等价类 95June 无效输入 ② 20036 无效输入 ③ 2001006 无效输入 ④ 198912 无效输入 ⑥ 200401 无效输入 ⑦ 200100 无效输入 ⑨ 200113 无效输入 ⑩

    00

    巴斯卡三角形(杨辉三角)

    参考资料: 1. 巴斯卡三角的来历 2. 巴斯卡是十七世纪的一位法国数学家,也是历史上第一位发明了加法计算机的人!他造出“巴斯卡三角形”的方法是这样的:先在纸上写出一行和一列的“ 1 “ ,然后在各个位置中填入数字,每一个位置上的数字都是它上面一个数和左边一个数的和。接下来,把这个表右转45 ° ,放正了,就得到上面的数字三角形了! 3. 现在的数学书里,都把这个三角形称为“巴斯卡三角形” ,事实上,在南宋杨辉所写的数学书里面,早就介绍了由北宋贾宪所创造出来的相同三角形了(所以在中国称为“贾宪三角”或“杨辉三角” ) ,时间可要比巴斯卡早了600年。 组合数计算方法:C(n,m)=n!/[m!(n-m)!]

    03

    等价类划分法测试用例设计举例「建议收藏」

    一、基本概念 等价类是指程序输入域的子集。 等价类划分(Equivalance Partitioning)测试的思想:将程序的输入域划分为若干个区域(等价类),并在每个等价类中选择一个具有代表性的元素生成测试用例。该方法是常用的黑盒(Blackbox Testing)测试用例(Testcase)设计方法。 一)划分等价类 1.有效等价类与无效等价类 等价类划分可有两种不同的情况:有效等价类和无效等价类。有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合,它能检验程序是否可以实现规格说明中所规定的功能需求。无效等价类是指对程序的规格说明是不合理的或无意义的输入数据所构成的集合,它能检验程序在不符合规则的数据输入下,是否会有异常;无效等价类至少应有一个,也可能有多个,视具体情况而定。因此,设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。 2.划分等价类的标准 完备测试、避免冗余。这就要求:集合(程序输入域)应划分为互不相交的一组子集,而这些子集的并集是整个集合(整个程序输入域)。 3.等价类的划分原则 (1) 若输入条件规定了取值范围或值的个数的情况下,可划分为一个有效等价类和两个无效等价类; Eg.设置风控指标,其中权重设置范围在[-1000,1000]

    04
    领券