递归与递推练习

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

递规与递推练习

杨辉三角形(Triangle)

【程序名称】triangle.exe

【源程序名】triangle.(pas/c/cpp)

【输入文件】triangle.in

【输出文件】triangle.out

【问题描述】

有一个数字三角是我国古代著名数学家杨辉首先提出的,这个数字三角如下图所示:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

……

现在给你一个正整数n,请你用递归算法给出杨辉的前n行。

【输入数据】

输入文件共一行,包含一个正整数n(1≤n≤20)。

【输出数据】

输出文件共n行,即杨辉三角的前n行。每行包含若干正整数,这些正整数之间用一个空格隔开(不能有多余的空格),最后一个正整数后面没有空格。

【样例】

triangle.in

4

triangle.out

1

1 1

1 2 1

1 3 3 1

多米诺骨牌(Domino)

【程序名称】domino.exe

【源程序名】domino.(pas/c/cpp)

【输入文件】domino.in

【输出文件】domino.out

【问题描述】

有N块1×2大小的骨牌需要放入一个2×N的牌盒中,请问共有多少种放法(输出总放法数的最后100位即可)。

【输入数据】

输入数据仅一个自然数N(N≤106)。

【输出数据】

输出数据共4行,每行25位,共100位。表示总放法数的最后100位。不满100位时高位用0补足。

【样例】

domino.in

5

domino.out

0000000000000000000000000

0000000000000000000000000

0000000000000000000000000

0000000000000000000000008

走楼梯(Stairs)

【程序名称】stairs.exe

【源程序名】stairs.(pas/c/cpp)

【输入文件】stairs.in

【输出文件】stairs.out

【问题描述】

有一楼梯共N阶,由于年久失修,其中有K阶台阶已经损坏(人不能在损坏的台阶上停留),已知某人一次能上一阶、两阶或三阶台阶,请问,此人从楼梯底部走到楼梯顶部,共有多少种走法。

【输入数据】

输入数据共两行,第一行包含两个自然数N(1≤N≤100)和K(0≤K<N),第二行包含K个自然数X i(1≤X i≤N),数字之间用一个空格隔开,表示损坏的台阶的序号(从楼梯底部到楼梯顶部,台阶序号依次为1~N)。

【输出数据】

输出数据仅包含一个整数,表示所有可行走法的总数。

【样例】

stairs.in

5 2

2 4

stairs.out

2

棋盘控制(Broad)

【程序名称】board.exe

【源程序名】board.(pas/c/cpp)

【输入文件】board.in

【输出文件】board.out

【问题描述】

在一个N×N的棋盘上放置K(K≤N)个中国象棋中的“車”,要求这K个“車”不能相互攻击,请问总共有多少种摆放方法。

【输入数据】

输入数据仅一行,包含两个整数N(1≤N≤20)和K,数字中间用空格隔开。

【输出数据】

输出数据仅一个整数,即总摆放方法数。

【样例】

braod.in

3 2

broad.out

18

相关文档
最新文档