文档库 最新最全的文档下载
当前位置:文档库 › 递归基础练习题

递归基础练习题

递归基础练习题
递归基础练习题

递归基础练习题

1. 求1+2+3+……+n的值

2. 求1*2*3*……*n的值

3. 数的全排列问题。将n个数字1,2,…n的所有排列按字典顺序枚举出来

2 3 1

2 1 3

3 1 2

3 2 1

4. 数的组合问题。从1,2,…,n中取出m个数,将所有组合按照字典顺序列出。

如n=3,m=2时,输出:

1 2

1 3

2 3

9. 求两个数的最大公约数。

10. 求两个数的最小公倍数。

5. 小猴子第一天摘下若干桃子,当即吃掉一半,又多吃一个.第二天早上又将剩下的桃子吃一半,又多吃一个.以后每天早上吃前一天剩下的一半另一个.到第10天早上猴子想再吃时发现,只剩下一个桃子了.问第一天猴子共摘多少个桃子?

8. 著名的菲波拉契(Fibonacci)数列,其第一项为1,第二项为1,从第三项开始,其每一项都是前两项的和。编程求出该数列前N项数据。

15. 梯有N阶,上楼可以一步上一阶,也可以一次上二阶。编一个程序,计算共有多少种不同的走法。

6. 有雌雄一对兔子,假定过两个月便可繁殖雌雄各一的一对小兔子。问过n个月后共有多少对兔子?

7. 一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子?

11. 输入一个数,求这个数的各位数字之和。

12. 角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。

如:输入22,

输出 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

STEP=16

13. 将十进制转换为二进制。

14. 计算M=max(a,b,c)/[max(a+b,b,c)*max(a,b,b+c)],其中a,b,c由键盘输入。

16. 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况?

17. 给出一棵二叉树的中序与后序排列。求出它的先序排列。

18. 求把一个整数n无序划分成k份互不相同的正整数之和的方法总数。

19. 已知一个一维数组A[1..N]。{N<50} 又已知一整数M。如能使数组A中任意几个元素之和等于M,则输出YES,反之则为NO。

20. 要求找出具有下列性质的数的个数(包含输入的自然数n):

先输入一个自然数n(n<=500),然后对此自然数按照如下方法进行处理:

①. 不作任何处理;

②. 在它的左边加上一个自然数,但该自然数不能超过原数首位数字的一半;

③. 加上数后,继续按此规则进行处理,直到不能再加自然数为止.

样例: 输入: 6

满足条件的数为 6

16

26

126

36

136

输出: 6

21. 自然数的拆分问题。给定自然数n,将其拆分成若干自然数的和。输出所有解,每组解中数字按从小到大排列。相同数字的不同排列算一组解。如:

3=1+1+1

3=1+2

3=3

22. 用递归的方法求N个数中最大的数及其位置。

23. 写出折半查找的递归算法。

24. 快速排序法。

思考题 :

1、数学宝塔,从最顶上走到最底层,每次只能走到下一层的左边或右边的数字,求出使所走到的所有数字之和为60的途径。

7

4 6

69 3

637 1

25328

5947 3 2

641856 3

3976841 5

25735784 2

2、汉诺塔问题:设有三个塔座,依次命名为x,y,z。有z个直径不同的圆盘,由小到大依次编号为1、2、……,n。开始时,它们全部按递减的次序插在塔座上。现要求按下列规则把n个圆盘按次序插放在z塔座上。

(1)、每次只能移动一个圆盘;

(2)、圆盘可以从任一个塔座上移到另一个塔座上;

(3)、任何时刻都不能把一个较大的圆盘压在较小的圆盘上。

典型例题:

1.设有n个数已经按从大到小的顺序排列,现在从键盘上输入n,判断它是否在这n 个数中,如果存在则输出“yes”否则输出“no”。

Program lx4;

Const n=30;

Var a:array[1..n]of integer;

F,r,x,k:integer;

Program search(x,top,bot:integer);

Var mid:integer;

Begin

if top<=bot then

Begin

Mid=(top + bot) div 2;

If x =a[mid] then writeln(x:5,mid:5,?yes?)

else If x

Else search(x,mid+1,r);

End

else Writeln(x:5,…no?);

End;

Begin

Writeln(…input n ge shu?);

For k:=1 to n do read(a[k]);

Read(x);

F:=1;r:=n;

Search(x,f,r);

End.

2.hanoi塔问题。

递归:procedure Hanoi(n:integer;x,y,z:char);

Begin

If n=1 then writeln(x,?--?n,?---?,z)

Else begin

Hanoi(n-1,x,z,y);

Writeln(x,?--?,n,?---?,z);

Hanoi(n-1,y,x,z)

End;

End;

Begin

Write(…input n:?);

Read(n);

Hanoi(n,?A?,?B?,?C?)

End.

3.有n个硬币(n为偶数)正面朝上排成一排,每次将n-1个硬币翻成朝上为止。编程让计算机把翻硬币的最简过程及翻币次数打印出来(用*代表正面,用0代表反面)。

基本形式:D[1]=0;d[2]=1

递归式:d[n]= (n-1)*( d[n-1] + d[n-2])

var n:integer;

function d(n:integer):longint;

begin

case n of

1:d:=0;

2:d:=1;

else d:=(n-1)*(d(n-1)+d(n-2));

end;

end;

begin

repeat

write('n=');

readln(n);

if n<=0 then writeln('Once more!')

until n>0;

writeln('d=',d(n));

readln;

end.

4.有一对雌雄兔子,假定两个月便可以繁殖雌雄各一对兔子。问n个月后共有多少对兔子?递归的三要素:

递归的形式:T[n]= T[n-1]+ T[n-2]

基本:T[1]=1,T[2]=1

结束条件:n个月

program rabbit;

var n:integer;

function fa(n:integer):integer;

begin

if n<3 then fa:=1

else fa:=fa(n-1)+fa(n-2);

end;

begin

write('n=');readln(n);

writeln('The number of the rabbits:',fa(n));

end.

5.梯有N阶,上楼可以一步上一价,也可以一次上二阶。编一个程序,计算共有多少种不同的走法。

递归的形式:s[n]=s[n-1]+s[n-2]

基本式子:s[1]=1;s[2]=2

program upstairs;

var n:integer;

function s(n:integer):longint;

begin

if (n=1)or(n=2) then s:=n

else s:=s(n-1)+s(n-2);

end;

begin

repeat

write('N=');readln(n);

until n>0;

writeln('s=',s(n));

readln;

end.

6.斐波那切数列

递归:var m,p:integer;

Function fib(n:integer):integer;

Begin

If n=0 then fib:=0

Else if n=1 then fib:=1

Else fib:=fib(n-1)+fib(n-2);

End;

Begin

Read(m);

P:=fib(m);

Writeln(…fib(?,mm?)=?,p)

End.

7.设有2^n个运动员要进行网球比赛。现要设计一个满足以下要求的比赛日程表:(1)、每个选手必须与其他n-1个选手各赛一次;

(2)、每个选手每天只能参赛一次;

(3)、循环赛在n-1天内结束。program match;

const k=3;n=8;

var

s:array[1..n,1..n] of integer;

i,j,p:integer;

ju:boolean;

procedure copy1(be,en:integer;jug:boolean;q:integer);

var m,t,ban:integer;

begin

if jug then

begin

if be=1 then

begin if s[en,en]=0 then

begin copy1(be,en div 2,true,q div 2);

copy1((en div 2)+1,en,false,q div 2);

end;

for m:=1 to en do

for t:=1 to en do

s[m+q,t+q]:=s[m,t]

end

else begin if s[be+q-1,q]=0 then

begin copy1(be,be+(q div 2)-1,true,q div 2);

copy1(be+(q div 2),en,false,q div 2)

end;

for m:=be to en do

for t:=1 to q do

s[m+q,t+q]:=s[m,t]

end

end

else begin

if s[be,q]=0 then

begin copy1(be,be+(q div 2)-1,true,q div 2);

copy1(be+(q div 2),en,false,q div 2)

end;

for m:=be to en do

for t:=1 to q do

s[m-q,t+q]:=s[m,t]

end

end;

begin

p:=8;

for i:=1 to n do

for j:=1 to n do

s[i,j]:=0;

for i:=1 to n do

begin

s[i,1]:=i;

if odd(i) then s[i+1,2]:=s[i,1]

else s[i-1,2]:=s[i,1];

end;

copy1(1,n div 2,true,p div 2);

copy1((n div 2)+1,n,false,p div 2);

for i:=1 to n do

begin

for j:=1 to n do

write(s[i,j],' ');

writeln;

end;

end.

以下是USACO contest上的题目,全是递归

-----------------------------------------------

********************************************************************** BRONZE PROBLEMS

********************************************************************** 三道题目,从11到13

********************************************************************** Problem 11: 谷仓的安保 [Traditional, 2005]

Farmer John给谷仓安装了一个新的安全系统,并且要给牛群中的每一个奶牛安排一个有效的密码。一个有效的密码由L(3 <= L <= 15)个小写字母(来自传统的拉丁字母集'a'...'z')组成,至少有一个元音('a', 'e', 'i', 'o', 或者 'u'),至少两个辅音(除去元音以外的音节),并且有按字母表顺序出现的字母(例如,'abc'是有效的,而'bac'不是) 。

给定一个期望长度L和C个小写字母,写一个程序,打印出所有的长度为L、能由这些字母组成的有效密码。密码必须按字母表顺序打印出来,一行一个。

题目名称: passwd

输入格式:

* 第一行: 两个由空格分开的整数,L和C

* 第二行: C个空格分开的小写字母,密码是由这个字母集中的字母来构建的。

输入样例 (文件 passwd.in):

4 6

a t c i s w

输入详细说明:

由从给定的六个字母中选择的、长度为4的密码。

输出格式:

* 第一至?行: 每一个输出行包括一个长度为L个字符的密码(没有空格)。输出行必须按照字母顺序排列。

输出样例 (文件 passwd.out):

acis

acit

aciw

acst

acsw

actw

aist

aisw

aitw

astw

cist

cisw

citw

istw

**********************************************************************

Problem 12: "跳房子" [Hal Burch, 2005]

奶牛们按不太传统的方式玩起了小孩子们玩的"跳房子"游戏。奶牛们创造了

一个5x5的、由与x,y轴平行的数字组成的直线型网格,而不是用来在里面跳

的、线性排列的、带数字的方格。

然后他们熟练地在网格中的数字中跳:向前跳、向后跳、向左跳、向右跳

(从不斜过来跳),跳到网格中的另一个数字上。他们再这样跳啊跳(按相同规

则),跳到另外一个数字上(可能是已经跳过的数字)。

一共在网格内跳过五次后,他们的跳跃构建了一个六位整数(可能以0开头,

例如000201)。

求出所有能被这样创造出来的不同整数的总数。

问题名称: numgrid

输入格式:

* 第1到5行: 这样的网格,一行5个整数

输入样例 (文件 numgrid.in):

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1

2 1

1 1 1 1 1

输出格式:

* 第1行: 能构建的不同整数的总数

输出样例 (文件 numgrid.out):

15

输出详细说明:

111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112,121211, 121212, 2111 11, 211121, 212111和 212121 能够被构建。没有其它可能的数了。

********************************************************************** Problem 13: 卫星照片 [Rob Kolstad, 2005]

Farmer John给他的农场买了W x H像素的卫星照片(1 <= W <= 80, 1 <= H

<= 1000),希望找出最大的"连续的"(互相连接的)牧场。任何一对像素,一个

像素如果能横向的或纵向的与属于这个牧场的另一个像素相连,这样的牧场称

作是连续的(这句话太难翻了,大家将就着理解一下,看了后面的范例应该不

会影响做题—译者)。(很容易创建形状稀奇古怪的牧场,甚至是围着其它圆圈

的圆圈。)

每一张照片都数字化的抽象了,牧场区显示为"*",非牧场区显示为"."。下面

是一个10 x 5的卫星照片样例:

..*.....**

.**..*****

.*...*....

..****.***

..****.***

这张照片显示了大小分别为4、16、6个像素的连续牧场区。帮助FJ在他的每张

卫星照片中找到最大的连续牧场。

问题名称: satpix

输入格式:

* 第1行: 两个由空格分开的整数,H 和 W。

* 第2到H+1行: 每一行包含W个"*"或者".",代表卫星照片的横向行。

输出样例 (文件 satpix.in):

10 5

..*.....**

.**..*****

.*...*....

..****.***

..****.***

输出格式:

* 第1行: 最大连续牧场的大小输出样例 (文件 satpix.out):

16

算法设计与分析习题答案1-6章

习题1 1. 图论诞生于七桥问题。出生于瑞士的伟大数学家欧拉(Leonhard Euler ,1707—1783)提出并解决了该问题。七桥问题是这样描述的:一个人是否能在一次步行中穿越哥尼斯堡(现 在叫加里宁格勒,在波罗的海南岸)城中全部的七座桥后回到起点,且每座桥只经过一次, 图是这条河以及河上的两个岛和七座桥的草 图。请将该问题的数据模型抽象出来,并判断此问题是否有解。 七桥问题属于一笔画问题。 输入:一个起点 输出:相同的点 1, 一次步行 2, 经过七座桥,且每次只经历过一次 3, 回到起点 该问题无解:能一笔画的图形只有两类:一类是所有的点都是偶点。另一类是只有二个奇点的图形。 2.在欧几里德提出的欧几里德算法中(即最初的欧几里德算法)用的不是除法而是减法。请用伪代码描述这个版本的欧几里德算法 =m-n 2.循环直到r=0 m=n n=r r=m-n 3 输出m 3.设计算法求数组中相差最小的两个元素(称为最接近数)的差。要求分别给出伪代码和C++描述。 编写程序,求n 至少为多大时,n 个“1”组成的整数能被2013整除。 #include using namespace std; int main() { double value=0; 图 七桥问题

for(int n=1;n<=10000 ;++n) { value=value*10+1; if(value%2013==0) { cout<<"n至少为:"< using namespace std; int main () { double a,b; double arctan(double x);圣经上说:神6天创造天地万有,第7日安歇。为什么是6天呢?任何一个自然数的因数中都有1和它本身,所有小于它本身的因数称为这个数的真因数,如果一个自然数的真因数之和等于它本身,这个自然数称为完美数。例如,6=1+2+3,因此6是完美数。神6天创造世界,暗示着该创造是完美的。设计算法,判断给定的自然数是否是完美数 #include using namespace std; int main() { int value, k=1; cin>>value; for (int i = 2;i!=value;++i) { while (value % i == 0 ) { k+=i;有4个人打算过桥,这个桥每次最多只能有两个人同时通过。他们都在桥的某一端,并且是在晚上,过桥需要一只手电筒,而他们只有一只手电筒。这就意味着两个人过桥后必须有一个人将手电筒带回来。每个人走路的速度是不同的:甲过桥要用1分钟,乙过桥要用2分钟,丙过桥要用5分钟,丁过桥要用10分钟,显然,两个人走路的速度等于其中较慢那个人的速度,问题是他们全部过桥最少要用多长时间? 由于甲过桥时间最短,那么每次传递手电的工作应有甲完成 甲每次分别带着乙丙丁过桥 例如: 第一趟:甲,乙过桥且甲回来

中国近现代史纲要习题册答案 第四章开天辟地的大事变

第四章开天辟地的大事变 一、单项选择题 1、A 2、C 3、A 4、C 5、D 6、A 7、C 8、B 9、D 10、D 11、C 12、D 13、B 14、B 15、D 16、D 17、D 18、C 19、B 20、D 21、C 二、多项选择题 1、ABCD 2、BC 3、CD 4、ABCD 5、ACD 6、ACD 7、ABD 8、ABCD 9、ACD 10、AC 11、BCD 12、ABCD 三、简答题 1、新文化运动的主要内容和意义是什么 新文化运动的主要内容是:提倡民主,反对专制;提倡科学,反对愚昧和迷信;提倡新文化,反对旧文化,要求以白话文代替文言文,进行文学革命;提倡个性解放,反对封建伦理道德。提倡民主就是提倡资产阶级的民主思想和民主制度,包括人权平等、个性解放、独立人格以及以代议制为基本原则的共和体制。提倡科学就是要学习自然科学法则,反对封建迷信,反对偶像崇拜,宣传进化论、唯物论和无神论等思想。进行文学革命就是要从内容到形式提倡白话文,反对文言文。为了传播民主科学的思想,为了人民的启蒙,就必须大力提倡新文学、白话文,反对封建文学、文言文。1919年五四运动以前的新文化运动主要是以资产阶级的新文化反对封建主义的旧文化的斗争,它仍然属于资产阶级民族主义文化革命的范畴。五四以后的新文化运动已经发展到了一个新阶段,马克思主义开始逐步地在思想文化领域中发挥指导作用。 2、如何理解五四运动标志着中国新民主主义革命的开端 五四运动是一次彻底的不妥协的反帝反封建运动。五四以后,尽管中国的社会性质仍然是半殖民地半封建社会,但革命的性质已发生了根本的变化。五

四运动标志着中国新民主主义革命的开端,表现为: 五四运动是在十月革命影响下发生的,是世界无产阶级革命的一部分;马克思主义的广泛传播使中国人民掌握了新的思想武器;无产阶级作为新的力量登上中国政治舞台;社会主义成为中国革命的前进方向。 3、简述中国早期马克思主义思想运动表现出的鲜明特点。 一是注意整体掌握马克思主义的科学体系和立场方法,划清与修正主义的界限。 二是从实际出发运用马克思主义。 三是重视知识分子与劳动群众相结合。 4、中国共产党第二次全国代表大会提出的民主革命的基本纲领及其意义是什么 1922年7月,党的第二次全国代表大会根据中国的实际情况制定出最低纲领,即中国共产党在民主革命阶段的任务是:消除内乱、打倒军阀、建设国内和平;推翻国际帝国主义的压迫,达到中华民族的完全独立;统一中国为真正民主共和国。 党在民主革命时期的基本纲领第一次明确了革命对象-初步解决了革命动力问题,为全国人民制定了彻底的反帝反封建的民主革命纲领。从此,中国人民有了革命斗争的明确方向和战斗旗帜。 四、论述题 1.为什么说中国共产党的成立是中国近代社会历史发展的必然结果中国共产党的成立是中国历史上开天辟地的大事变,是近代中国革命的一个重要转折点。但是中国共产党的产生绝非偶然。它是中国社会政治经济发展的必然结果,是马克思列宁主义同工人运动相结合的产物。 近代中国沦为半殖民地半封建社会,灾难深重的中国人民必然要起来进行

递归神经网络

递归神经网络概述 一、引言 人工神经网络的发展历史己有60多年,是采用物理可实现的系统模仿人脑神经细胞的结构和功能,是在神经生理学和神经解剖学的基础上,利用电子技术、光学技术等模拟生物神经网络的结构和功能原理而发展起来的一门新兴的边缘交叉学科,(下面简称为神经网络,NeuralNetwork)。这些学科相互结合,相互渗透和相互推动。神经网络是当前科学理论研究的主要“热点”之一,它的发展对目前和未来的科学技术的发展将有重要的影响。神经网络的主要特征是:大规模的并行处理、分布式的信息存储、良好的自适应性、自组织性、以及很强的学习能力、联想能力和容错能力。神经网络在处理自然语言理解、图像识别、智能机器人控制等方面具有独到的优势。与冯·诺依曼计算机相比,神经网络更加接近人脑的信息处理模式。 自从20世纪80年代,Hopfield首次提出了利用能量函数的概念来研究一类具有固定权值的神经网络的稳定性并付诸电路实现以来,关于这类具有固定权值神经网络稳定性的定性研究得到大量的关注。由于神经网络的各种应用取决于神经网络的稳定特性,所以,关于神经网络的各种稳定性的定性研究就具有重要的理论和实际意义。递归神经网络具有较强的优化计算能力,是目前神经计算应用最为广泛的一类神经网络模型。 根据不同的划分标准,神经网络可划分成不同的种类。按连接方式来分主要有两种:前向神经网络和反馈(递归)神经网络。前向网络主要是函数映射,可用于模式识别和函数逼近。递归神经网络因为有反馈的存在,所以它是一个非线性动力系统,可用来实现联想记忆和求解优化等问题。由于神经网络的记亿信息都存储在连接权上,根据连接权的获取方式来划分,一般可分为有监督神经网络、无监督神经网络和固定权值神经网络。有监督学习是在网络训练往往要基于一定数量的训练样木。在学习和训练过程中,网络根据实际输出与期望输出的比较,进行连接权值和阂值的调节。通常称期望输出为教师信号,是评价学习的标准。最典型的有监督学习算法是BP(BackProPagation)算法。对于无监督学习,无教师

基础模拟练习题一

模拟练习题(一)(64分) 一、单选题 1、下列各项中,不属于会计核算方法的是( C )。 A.复式记账 B.成本计算 C.评价经营业绩 D.财产清查 2、与一般企业相比,小企业的会计核算存在的不同点是(A B)。 A.适用的会计基础 B.适用的会计计量属性 C.适用的会计基本假设 D.适用的会计信息质量要求 3、下列不属于企业会计要素的是( C )。 A.收入 B.资产 C.或有资产 D.负债

4、下列不属于费用要素的是( D B D)。 A.财务费用 B.预付账款 C.管理费用 D.制造费用 5、对收入和费用等的具体内容进行分类核算的项目是( A )。 A.损益类科目 B.成本类科目 C.资产类科目 D.利润类科目 6、下列选项中,不属于会计科目设置原则的是( D )。 A.合法性原则 B.相关性原则 C.实用性原则 D.及时性原则 7、" 累计摊销" 的被调整账户是( C )。 A.商誉 B.在建工程

C.无形资产 D.固定资产 8、发生额试算平衡法采用的依据是(B)。 A.利润=收入-费用 B." 有借必有贷,借贷必相等" 的记账规则 C.资产=负债+所有者权益 D.资产=权益 9、已知" 应付利息" 账户期初余额88,000元,贷方发生额20 000元,期末余额50 000元,则该账户借方发生额为( A )元。 A.58,000 B.18,000 C.118,000 D.158,000 10、" 应交税费" 账户期末余额一般在贷方,反映的是(A)。 A.企业尚未交纳的税费 B.企业多交或尚未抵扣的税费 C.企业尚未抵扣的税费 D.企业多交的税费

递归习题

1、斐波那契数列 【问题描述】 斐波纳契数列0,1,1,2,3,5,8,13,21,34,55…从第三项起,每一项都是紧挨着的前两项的和。写出计算斐波那数列任意一个数据项的递归程序。 【输入格式】 所求项数 【输出格式】 数据项的值 【输入样例】 10 【输出样例】 34 2、倒序数 【问题描述】 用递归算法写程序,输入一个非负整数,输出这个数的倒序数。 【输入格式】 一个非负整数 【输出格式】 倒序结果 【输入样例】 123 【输出样例】 321 3、十进制转换成八进制数 【问题描述】 用递归算法,把任一给定的十进制数转换成八进制数输出。 【输入格式】 一个正整数,表示需要转换的十进制数。 【输出格式】 一个正整数,表示转换之后的八进制数。 【输入样例】 15 【输出样例】 17 4、求n!的值 【问题描述】 用递归算法,求n!的精确值(n以一般整数输入)。 【输入样例】 10 【输出样例】 10!=3628800

5、求最大公约数 【问题描述】 用递归方法求两个正整数m和n的最大公约数。(m>0,n>0) 【输入格式】 两个数,即m和n的值。 【输出格式】 最大公约数。 【输入样例】 8 6 【输出样例】 gcd=2 6、背包问题 【问题描述】 简单的背包问题,设有一个背包,可以放入的重量为s。现有n件物品,质量分布为w1,为,…,wn(1≤i≤n),均为正整数,从n件物品中挑选若干件,使得放入背包的重量之和正好为s。找到一组解即可。 【输入格式】 第一行是物品总件数和背包的载重量,第二行为各物品的重量。 【输出格式】 各所选物品的序号和重量。 【输入样例】 5 10 1 2 3 4 5 【输出样例】 number:1 weight:1 number:4 weight:4 number:5 weight:5 7、2的幂次方 任何一个正整数都可以用2 的幂次方表示: 如137=2^7+2^3+2^0 同时约定用括号来表示次方即a^b可表示为a(b) 所以137可表示为 2(7)+2(3)+2(0) 进一步:7=2^2+2+2^0 (2^1用2 表示) 3=2+2^0 所以137可表示为:2(2(2)+2+2(0))+2(2+2(2(0))+2(0) 又如:1315=2^10+2^8+2^5+2+1 所以1315最后可表示为:2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 【输入格式】 正整数(n<=20000) 【输出格式】

中国近现代史纲要最新版 课后思考题参考答案 第四章 开天辟地的大事变

1、中国的先进分子为什么和怎样选择了马克思主义? (1)斗争实践——中国选择马克思主义是近代以来先进中国人向西方探索救国救民真理历 史发展的必然结果。农民阶级、洋务派、维新派、革命派的努力先后失败。 (2)思想启蒙——五四新文化运动思想启蒙的结果;三次大论战,最终确立了马克思主义 在中国革命的指导思想地位。 (3)阶级基础——五四前后工人阶级的壮大及其斗争为中国选择马克思主义提供了阶级基 础和实践需求。 (4)外来影响——“一战”的影响:“一战”充分暴露了资本主义制度的内在矛盾,中国人对资 本主义方案产生了怀疑;(2分)俄国十月革命的推动:十月革命给陷于彷徨、苦闷的中国 人昭示了新的理想目标和建国方案,这就是走俄国人的路,搞社会主义。 2、为什么说中国共产党的成立是“开天辟地”的大事变? 第一,中国共产党的成立是中国革命有了坚强的领导核心,灾难深重的中国人民有了可以依 赖的组织者和领导者,中国革命从此不断向前发展,由民主主义革命向社会主义革命推进。 第二,中国共产党的成立,使中国革命有了科学的指导思想。中国共产党以马克思主义为指 导思想,把马克思主义和中国革命的具体实践相结合,制定了正确的革命纲领和斗争策略, 为中国人民指明了斗争的目标和走向胜利的道路。 第三,中国共产党的成立,使中国革命有了新的革命方法,并沟通了中国革命和世界无产阶 级革命之间的联系,为中国革命获得了广泛的国际援助和避免走资本主义提供了客观可能性。 3、中国共产党成立后,中国革命呈现了哪些新面貌?为什么? 中国共产党一经成立,中国革命就展现了新的面貌: 第一,第一次提出了反帝反封建的民主革命纲领,为中国人民指出了明确的斗争目标。 第二,发动工农群众开展革命斗争,在中国掀起了第一次工人运动高潮,同时,中国共产党 月开始从事发动农民的工作,农民的运动蓬勃发展。 第三,实行国共合作,并在合作中发挥主导作用,掀起大革命高潮,推翻了北洋军阀的统治。

数学中八种重要思维模式

数学中八种重要思维模式 波利亚说:“如果你希望从自己的努力中,取得最大的收获,就要从已经解决了的问题中找出那些对处理将来的问题可能有用的特征。如果一种解题方法是你通过自己的努力而掌握的,或者是你从别处学来或听来并真正理解了的,那么这种解法就可以成为你的一种模式,即在解类似问题时可用做模仿的一种模式”。波利亚在阐述他的数学思维模式时,总是从典型的问题出发,在解决它们的过程中逐步抽象出一般的方法,然后再概括上升为更一般的模式,从而实质上就得到了数学思维模式。它们是解题思维过程的一般思路的程序化的概括。也就是从样例出发,抽象概括出一般模式,这些模式的意义是在于它们形成了后续思维活动中解决类似问题的通用思想方法。 下面介绍常用的八种重要的思维模式: 1逼近模式: 逼近模式就是朝着目标推移前进,逐步沟通条件与结论之间的联系而使问题解决的思维方式。其思维程序是: (1)把问题归结为条件与结论之间因果关系的演绎。 (2)选择适当的方向逐步逼近目标。 我们一般的分析法就是逼近模式。 2 叠加模式 叠加模式是运用化整为零,以分求合的思想对问题进行横向分解或纵向分层实施各个击破而使问题获解的思维方式,其思维程序是: (1)把问题归结为若干种并列情形的总和或者插入有关的环节构成一组小问题; (2)处理各种特殊情形或解决各个小问题,将它们适当组合(叠加)而得到问题的一般解。 上述意义下的叠加是广义的,可以从对特殊情形的叠加,得到一般解,也可以分别解决子问题,将结果叠加得到问题的解;可以在条件与结论中间设立若干中途点,构成小目标把原问题分解成一串子问题,使前面问题的解决为后面问题的解决服务将结果叠加得问题的解;也可以引进中间的媒介或辅助元素以达到解决问题的目的。 3 变换模式 变换模式是通过适当变更问题的表达形式使其由难化易,由繁化简,从而最终达到解决问题的思维方式,其思维程序是: (1)选择适当的变换,等价的或不等价的(加上约束条件),以改变问题的表达形式: (2)连续进行有关变换,注意整个过程的可控制性和变换的技巧,直至达到目标状态 4 映射模式 映射模式是把问题从本领域(或关系系统)映射到另一领域,在另一领域中获解后再反演回原领域使问题解决的思维方式,它与变换模式在本质上是一致的,但变换通常是从一个数学集合到它自身的映射,它的思维程序是:关系→映射→定映→反演→得解

高中信息技术 算法与程序设计-递归算法的实现教案 教科版

递归算法的实现 【基本信息】 【课标要求】 (三)算法与问题解决例举 1. 内容标准 递归法与问题解决 (1)了解使用递归法设计算法的基本过程。 (2)能够根据具体问题的要求,使用递归法设计算法、编写递归函数、编写程序、求解问题。 【教材分析】 “算法的程序实现”是《算法与程序设计》选修模块第三单元的内容,本节课是“递归算法的程序实现”,前面学习了用解析法解决问题、穷举法解决问题、在数组中查找数据、对数进行排序以及本节的前一小节知识点“什么是自定义函数”的学习,在学习自定义函数的基础上,学习递归算法的程序实现是自定义函数的具体应用,培养学生“自顶向下”、“逐步求精”的意识起着重要的作用。 『递归算法在算法的学习过程中是一个难点,在PASCAL和C语言等程序语言的学习过程中,往往是将其放在“函数与过程”这一章节中来讲解的。递归算法的实现也是用函数或是过程的自我调用来实现的。从这一点上来讲,作者对教材的分析与把握是准确的,思路是清晰的,目标是明确的。』 【学情分析】 教学对象是高中二年级学生,前面学习了程序设计的各种结构,在学习程序设计各种结构的应用过程中培养了用计算机编程解决现实中问题的能力,特别是在学习循环语句的过程中,应用了大量的“递推”算法。前一节课学习了如何自定义函数,在此基础上学习深入学习和体会自定义函数的应用。以递推算法的逆向思维进行求解问题,在学习过程中体会递归算法的思想过程。多维度的思考问题和解决问题是提高学生的学习兴趣关键。 『递归算法的本质是递推,而递推的实现正是通过循环语句来完成的。作者准确把握了学生前面的学习情况,对递归算法的本质与特征也分析的很透彻,可以说作者对教学任务的分析是很成功的,接来就要看,在成功分析的基础上作者是如何通过设计教学来解决教学难点的了。』 【教学目标】

语言的递归性及其根源

语言的递归性及其根源 钱冠连 (广东外语外贸大学外国语言学及应用语言学研究中心,广州 510420)摘要:(1)递归性不仅是转换生成语法中的一种语法属性,而且它与任意性、线性一样是语言的根本性质之一。(2)作者给出了语言递归性的定义:语言结构层次和言语生成中相同结构成分的重复或相套。(3)作者着重论证了语言递归性,阐述了整个语言结构和言语的生成处于相同结构的重复与层层相套之中,分析了语言整体上的递归性与局部上的非递归性,并指出这二者的必要性:整体上的递归性避免了句式集合的庞大与复杂的危险,使句式有限而简单;局部的非递归性使语言在有限手段之内变得丰富起来。语言递归性的巨大意义甚至是全部意义就在于允许人们用少量的句型生成无限多的句子。(4)语言的递归性的根源在世界(宇宙)的递归结构与语言的递归结构处于全息状态之中。 关键词:递归;语言递归性;全息 On Recursiveness of Language and Its Origin QIAN Guanlian (Center for Linguistics,Guangdong University of Foreign Studies,Guangzhou 510420)Abstract: In Part 1, the author points out that, recursiveness of language should not only be a grammatical attribute restricted to the transformational -generative grammar, but also be an essential property of language on a par with arbitrariness and linear nature of language. In Part 2, the author proposes that recursiveness of language could be defined as the reiteration or the embedded state of the same frames and elements in the structures of language as well as in the process of utterance generation. Part 3 is to give the argumentation on recursiveness of language. The gigantic significance of recursiveness of language lies in that it allows people to generate infinitely many sentences with a small number of sentence patterns. Finally, the author argues that the rootstock of recursiveness of language be that the recursive structure of the cosmos and the recursive structure of language are in a holographic state. Key words: recursion; recursiveness of language; holographics 本文明确地将语言的递归性(recursiveness) ,像语言的任意性与线性一样,作为语言的根本性质之一来对待,然后着重论述,语言递归性的根源来自它的结构与宇宙的结构是全息关系。 1. 理论引入

#《会计基础》模拟练习题(一)

《基础会计》模拟练习题(一) 一、单项选择题(下列每小题备选答案中,只有一个符合题意的正确答案。本类题共20 分,每小题l分。多选、错选、不选均不得分。) 1.下列有关会计主体的表述中,不正确的是()。 A.会计主体是指会计所核算和监督的特定单位和组织 B.会计主体就是法律主体 C.由若干具有法人资格的企业组成的企业集团也是会计主体 D.会计主体界定了从事会计工作和提供会计信息的空间范围 2.总分类会计科目一般按()进行设置。 A.企业管理的需要B.统一会计制度的规定 C.会计核算的需要D.经济业务的种类不同 3.特定主体的资金运动不包括的环节是()。 A.资金的投入B.资金的增值 C.资金的循环与周转 D.资金的退出4.下列关于会计监督职能的表述中,不正确的是()。 A.会计的监督职能是指对特定对象经济业务的合法性、合理性进行审查 B.会计监督可以分为事前、事中和事后监督 C.会计监督是会计核算的基础 D.会计监督是会计核算的质量保障 5.下列说法不正确的是()。 A.所有者权益是指企业资产扣除负债后由所有者权益享有的剩余权益 B.所有者权益的金额等于资产减去负债后的余额 c.所有者权益也称为净资产 D.所有者权益包括实收资本(或股本)、资本公积、盈余公积和留存收益6.下列说法正确的是()。 A.按照适用经济业务的不同,记账凭证分为通用记账凭证和专用记账凭证B.通用记账凭证是单式记账凭证,专用记账凭证是复式记账凭证 C.复式记账凭证能够反映会计账户之间的对应关系 D.通用记账凭证适用于规模较大、经济业务数量以及收付款业务较多的单位7.()是用以调整财产物资账簿记录的重要原始凭证,也是分析产生差异的原因,明确经济责任的依据。 A.盘存单 B.实存账存对比表 C.银行对账单 D.收料单 8.收入明细账比较适合使用的账簿格式是()。 A.两栏式账簿 B.数量金额式账簿 C.多栏式账簿 D.三栏式账簿9.在登记账簿过程中,每一账页的最后一行及下一页第一行都要办理转页手续,是为了()。 A.防止隔页 B.防止遗漏 C.便于查账 D.保持记录的衔接和连续性10.凡结账前发现记账凭证正确而登记账簿时发生的错误,可用()更正。 A.划线更正法B.补充登记法C.涂改法D.红字更正法 11.记账之后,发现记账凭证中将20 000元误写为2 000元,会计科目名称及应

《递归算法与递归程序》教学设计

递归算法与递归程序 岳西中学:崔世义一、教学目标 1知识与技能 (1) ?认识递归现象。 (2) ?使用递归算法解决冋题往往能使算法的描述乘法而易于表达 (3) ?理解递归三要素:每次递归调用都要缩小规模;前次递归调用为后次作准备:递归调用必须有条件进行。 (4) ?认识递归算法往往不是咼效的算法。 (5) ? 了解递归现象的规律。 (6) ?能够设计递归程序解决适用于递归解决的问题。 (7) ?能够根据算法写出递归程序。 (8) ? 了解生活中的递归现象,领悟递归现象的既有重复,又有变化的特点,并且从中学习解决问题的一种方法。 2、方法与过程 本节让同学们玩汉诺塔的游戏,导入递归问题,从用普通程序解决斐波那契的兔子问题入手,引导学生用自定义了一个以递归方式解决的函数过程解决问题,同时让同学们做三个递归练习,巩固提高。然后让学生做练习(2) 和练习(3)这两道题目的形式相差很远,但方法和答案却是完全相同的练习,体会其中的奥妙,加深对递归算法的了解。最后用子过程解决汉诺塔的经典问题。 3、情感态度和价值观 结合高中生想象具有较强的随意性、更富于现实性的身心发展特点,综合反映出递归算法的特点,以及递归算法解答某些实践问题通常得很简洁,从而激发学生对程序设计的追求和向往。 二、重点难点 1、教学重点 (1) 了解递归现象和递归算法的特点。 (2) 能够根据问题设计出恰当的递归程序。 2、教学难点 (1) 递归过程思路的建立。 (2) 判断冋题是否适于递归解法。 (3) 正确写出递归程序。 三、教学环境 1、教材处理 教材选自《浙江省普通高中信息技术选修:算法与程序设计》第五章,原教材的编排是以本节以斐波那契的兔子问题引人,导出递归算法,从而自 定义了一个以递归方式解决的函数过程。然后利用子过程解决汉诺塔的经典问题。 教材经处理后,让同学们玩汉诺塔的游戏,导入递归问题,从用普通程序解决斐波那契的兔子问题入手,引导学生用自定义了一个以递归方式解决的函数过程解决问题,同时让同学们做三个递归练习,巩固提高。然后让学生做练习⑵ 和练习

计算机文化基础模拟考试 习题 (2)

(练习二) 单选题 *下面的方法中不能退出Word 2000的是( )。03_001_S00001 A:使用快捷键Ctrl+F4 B:单击"文件"菜单中的"退出"命令 C:单击Word 2000中窗口右上角"关闭"按钮 D:双击Word 2000中窗口左上角控制图标 *在Word 2000中不能用"查找"功能找到的项目是( )。03_002_S00003 A:艺术字 B:格式 C:段落标志 D:分页符 *在Excel2000中,关于批注下列说法正确的是( )。04_002_S00008 A:一次可以删除多个批注 B:在某一时刻不可以查看所有批注 C:可以同时编辑多个批注 D:可以同时复制多个批注 *在表格里编辑文本时,选择整个一行或一列以后,( 03_004_S00001 )就能删除其中的所有文本。 A:按Del键 B:按Ctrl十Tab键 C:单击剪切按钮 D:按空格键 *Word在使用绘图工具绘制的图形中( )。03_005_S00003 A:可以加入文字、英文和其他符号 B:不能加入英文 C:不能加入任何符号 D:不能加入文字 *已知字符“E”的ASCII 码的十进制数是69,则字符“h”的ASCII 01_003_S00007码的十进制数表示是( )。 A:104 B:101 C:106 D:72 *Windows2000 professional操作系统属于( )操作系统。01_005_S00004 A:单用户多任务 B:单用户单任务 C:多用户单任务 D:多用户多任务 *微型计算机中,PCB指的是( )。01_006_S00007 A:主板 B:适配器 C:扩展槽

递归下降语法分析设计原理与实现技术实验报告

递归下降语法分析设计原理与实现技术 实验报告 变更说明 日期版本变更位置变更说明作者2014/4/16 1、0 初稿生成房皓

一、实验目的: 本实验的目的在于在教师的引导下以问题回朔与思维启发的方式,使学生在不断的探究过程中掌握编译程序设计与构造的基本原理与实现技术,启迪学生的抽象思维、激发学生的学习兴趣、培养学生的探究精神与专业素养,从而提高学生发现问题、分析问题与解决问题的能力。 二、实验内容: [实验项目] 完成以下描述算术表达式的LL(1)文法的递归下降分析程序 G[E]: E→TE′ E′→ATE′|ε T→FT′ T′→MFT′|ε F→ (E)|i A→+|- M→*|/ [设计说明] 终结符号i 为用户定义的简单变量,即标识符的定义。 [设计要求] (1)输入串应就是词法分析的输出二元式序列,即某算术表达式“实验项目一”的输出结果,输出为输入串就是否为该文法定义的算术表达式的判断结果; (2)递归下降分析程序应能发现输入串出错; (3)设计两个测试用例(尽可能完备,正确与出错),并给出测试结果。 三、实验环境: 操作系统:Windows 7 软件: VC++6、0 四、程序功能描述: ●提供了两种输入方式:键盘与文件,有文件输入时需为二元式序列; ●能够对输入的字符串做出正确的递归下降分析判断,并给出判断结果; ●能发现输入串中的错误,包含非法字符,输入不匹配等; ●能够处理一些可预见性的错误,如文件不存在,用户输入非法等。

五、数据结构设计: 全局: 局部(main()中): 六、程序结构描述: ●设计方法: 本程序采用从键盘输入或文件读取两种输入方式,其中文件的内容需为二元式序列,然后按照递归下降分析的方法对输入的字符串进行分析判断,并输出判断结果,程序通过对输入串的检查能够发现输入串中的错误。程序规定的单词符号及其种别码见下表: 单词符号种别码单词符号种别码 ( 1 * 5 ) 2 / 6 + 3 i 7 - 4 # 8 ● advance():将下一个字符送入current;

最新基础模拟练习题一

基础模拟练习题一

模拟练习题(一)(64分) 一、单选题 1、下列各项中,不属于会计核算方法的是( C )。 A.复式记账 B.成本计算 C.评价经营业绩 D.财产清查 2、与一般企业相比,小企业的会计核算存在的不同点是(A B)。 A.适用的会计基础 B.适用的会计计量属性 C.适用的会计基本假设 D.适用的会计信息质量要求 3、下列不属于企业会计要素的是( C )。 A.收入 B.资产 C.或有资产 D.负债

4、下列不属于费用要素的是( D B D)。 A.财务费用 B.预付账款 C.管理费用 D.制造费用 5、对收入和费用等的具体内容进行分类核算的项目是 ( A )。 A.损益类科目 B.成本类科目 C.资产类科目 D.利润类科目 6、下列选项中,不属于会计科目设置原则的是( D )。 A.合法性原则 B.相关性原则 C.实用性原则 D.及时性原则 7、" 累计摊销" 的被调整账户是( C )。 A.商誉 B.在建工程

C.无形资产 D.固定资产 8、发生额试算平衡法采用的依据是(B)。 A.利润=收入-费用 B." 有借必有贷,借贷必相等" 的记账规则 C.资产=负债+所有者权益 D.资产=权益 9、已知" 应付利息" 账户期初余额88,000元,贷方发生额20 000元,期末余额50 000元,则该账户借方发生额为 ( A )元。 A.58,000 B.18,000 C.118,000 D.158,000 10、" 应交税费" 账户期末余额一般在贷方,反映的是(A)。 A.企业尚未交纳的税费 B.企业多交或尚未抵扣的税费 C.企业尚未抵扣的税费

第3章程序与递归:组合、抽象与构造练习题答案解析

第3章程序与递归:组合、抽象与构造 1、关于计算系统与程序,下列说法正确的是_____。 (A)只有用计算机语言编写出来的代码才是程序,其他都不能称其为程序; (B)构造计算系统是不需要程序的,程序对构造计算系统没有什么帮助; (C)任何系统都需要程序,只是这个程序是由人来执行还是由机器自动执行,可以由机器自动执行程序的系统被称为计算系统; (D)程序是用户表达的随使用者目的不同而千变万化的复杂动作,不是使用者实现的而是需要计算系统事先完成的。 答案:C 解释: 本题考查程序,计算系统等的概念; (A)程序= 基本动作指令的一个组合或执行序列, 用以实现复杂的动作,只用计算机语言编写出来的代码称为程序,这个概念太狭隘了,A错误;(B)计算系统的一部分是由程序组成的,所以B错误;(C)计算系统= 基本动作+ 指令+ 程序执行机构,任何系统都需要系统,C完全正确;(D)程序= 基本动作指令的一个组合或执行序列, 用以实现复杂的动作,并不是由用户表达的,随使用者的不同而千变万化的复杂动作。所以D是错的; 具体内容参考第三章视频之“程序的作用和本质”及第三章课件。 2、关于程序,下列说法不正确的是_____。 (A)“程序”是由人编写的、以告知计算系统实现人所期望的复杂动作; (B)“程序”可以由系统自动解释执行,也可以由人解释由系统执行; (C)普通人是很难理解“程序”的,其也和“程序”无关; (D)“程序”几乎和每个人都有关系,如自动售票系统、自动取款机等。 答案:C 解释: 本题考查程序的概念; 程序= 基本动作指令的一个组合或执行序列, 用以实现复杂的动作,所以A,B,D都是正确的;C说普通人很难理解程序,这显然是错误的。所以选C; 具体内容参考第三章视频之“程序的作用和本质”及第三章课件。

基础模拟练习题二

基础模拟练习题二

————————————————————————————————作者: ————————————————————————————————日期: ?

会计基础模拟二 一、单选题 1、下列各项中,不属于会计监督内容的是( )。 A.财务收支的合理性审查 B.不定期进行的财产清查 C.经济业务的合法性审查 D.经济业务的真实性审查 2、企业为应收账款计提坏账准备,主要体现的会计信息质量要求是()。A.谨慎性B.可靠性 C.重要性 D.可比性 3、下列各项中,属于制造企业的主营业务收入的是( )。 A.销售商品收入 B.材料销售收入 C.包装物出租收入 D.转让无形资产使用权收入 4、以下会计要素的计量属性中又称为现行成本的是( )。 A.可变现净值B.现值 C.重置成本 D.历史成本实际成本 5、下列账户中,不属于成本类账户的是( )。 A.制造费用 B.劳务成本 C.所得税费用 D.生产成本 6、下列有关会计科目的阐述中,错误的是()。 A. 企业在任何情况下都不能对明细分类科目再进一步分级设置二级科目或三级科目 B.总分类账科目是对会计要素的具体内容进行总括分类,提供总括信息的会计科目 C.明细分类科目是对总分类科目做进一步分类,提供更详细具体会计信息的科目 D.会计科目按其提供信息的详细程度及其统驭关系,可以分为总分类科目和明细分类科目 7、下列选项中,不属于会计科目设置原则的是()。 A.可靠性原则 B.实用性原则 C.相关性原则 D.合法性原则8、下列选项中,不属于复式记账法的是()。 A.正负记账法B.收付记账法 C.借贷记账法 D.增减记账法9、下列选择中,会导致试算不平衡的因素的是( )。 A.重记某项经济业务B.借贷科目用错 C.漏记某项经济业务 D.借方多记金额 10、“应交税费”账户期末余额一般在贷方,反映的是()。 A.企业尚未交纳的税费 B.企业多交或尚未抵扣的税费 C.企业尚未抵扣的税费D.企业多交的税费 11、企业实现的净利润,应按照国家的规定和投资者的决议进行合理的分配,在下列各项中,首先应做的是()。 A.向投资者分配利润 B.提取法定盈余公积

高中信息技术递归算法的实现教案 粤教版

《递归算法与递归程序》(一)教学设计 一、教材分析 “递归算法与递归程序”是广东教育出版社《算法与程序设计》选修1第四单元第五节的内容,前面学习了用解析法解决问题、穷举法解决问题、在数组中查找数据、对数进行排序,且在第二章中学习了自定义过程与函数。在前面学习的基础上,学习递归算法的程序实现是自定义函数的具体应用,在培养学生“自顶向下”、“逐步求精”的意识起着重要的作用。 二、学情分析 教学对象是高中二年级学生,前面学习了程序设计的各种结构与自定义函数(过程)及常用基础算法,在学习程序设计各种结构的应用过程中,培养了学生用计算机编程解决现实中的问题的能力。在学习循环语句的过程中,应用了大量的“递推”算法,在第二章中,学习了如何使用自定义函数,在此基础上深入学习和体会自定义函数的应用,以递推算法的逆向思维进行求解问题,在学习过程中体会递归算法的思想过程。多维度的思考问题和解决问题是提高学生的学习兴趣关键。 三、教学目标 知识与技能: 1、理解什么是递归算法,学会递归算法的思想分析问题 2、能够应用递归算法编程处理实际问题 过程与方法:学生参与讨论,通过思考、动手操作,体验递归算法的方法 情感态度与价值:结合数学中的实例,激发学生使用数学知识建模的意识,培养学生多维度的思考问题和解决问题。 四、教学重点与难点 重点:理解什么是递归算法 难点:学生用递归算法的思想分析问题 五、教学过程 进程教师活动学生活动设计意图 创设情境课堂导入: 师:今天我们先做一个小的智力题目 有4个人排成一队,问最后一个人的身高时,他 说比第3个人高2厘米;问第3个人的身高时, 他说比第2个人高2厘米;问第2个人的身高时, 他说比第1个人高2厘米;最后问第1个人的身 师生共同活动找 出递变规律 使用情境教学法 在此活动过程中能 让学生初步从活动 中体验“问题的发与 收”从而走进了递归 的思维模式,为进一

递归基础练习题

递归基础练习题 1. 求1+2+3+……+n的值 2. 求1*2*3*……*n的值 3. 数的全排列问题。将n个数字1,2,…n的所有排列按字典顺序枚举出来 2 3 1 2 1 3 3 1 2 3 2 1 4. 数的组合问题。从1,2,…,n中取出m个数,将所有组合按照字典顺序列出。 如n=3,m=2时,输出: 1 2 1 3 2 3 9. 求两个数的最大公约数。 10. 求两个数的最小公倍数。 5. 小猴子第一天摘下若干桃子,当即吃掉一半,又多吃一个.第二天早上又将剩下的桃子吃一半,又多吃一个.以后每天早上吃前一天剩下的一半另一个.到第10天早上猴子想再吃时发现,只剩下一个桃子了.问第一天猴子共摘多少个桃子? 8. 著名的菲波拉契(Fibonacci)数列,其第一项为1,第二项为1,从第三项开始,其每一项都是前两项的和。编程求出该数列前N项数据。 15. 梯有N阶,上楼可以一步上一阶,也可以一次上二阶。编一个程序,计算共有多少种不同的走法。 6. 有雌雄一对兔子,假定过两个月便可繁殖雌雄各一的一对小兔子。问过n个月后共有多少对兔子? 7. 一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子? 11. 输入一个数,求这个数的各位数字之和。 12. 角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。 如:输入22, 输出 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 STEP=16 13. 将十进制转换为二进制。 14. 计算M=max(a,b,c)/[max(a+b,b,c)*max(a,b,b+c)],其中a,b,c由键盘输入。 16. 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况? 17. 给出一棵二叉树的中序与后序排列。求出它的先序排列。 18. 求把一个整数n无序划分成k份互不相同的正整数之和的方法总数。 19. 已知一个一维数组A[1..N]。{N<50} 又已知一整数M。如能使数组A中任意几个元素之和等于M,则输出YES,反之则为NO。 20. 要求找出具有下列性质的数的个数(包含输入的自然数n): 先输入一个自然数n(n<=500),然后对此自然数按照如下方法进行处理: ①. 不作任何处理;

递归模式

递归模式 所谓递归,笼统地说,是指运用收集到的知识作为行动的基础去获得更多的知识。由于这里所涉及往往是多个甚至是无穷多个未知量,因此,所谓的递归事实上也就是指知识的“不断扩张”:“在解题的每一个阶段,我们都把关于一个新的分量的知识加到已经得到的知识上去,在每一阶段,我们又都要用已经得到的知识去得出更多的知识。我们要靠逐省逐省的占领去最后征服一个王国。在每一个阶段,我们利用已被征服了的省份作为行动基地去征服下一个省份。” 例 关于前n 个自然数的k 次幂的和k k k k k n S ++++= 321的计算,可以看成应用递归模式去解决问题的一个典型例子。 由于k 是任何一个自然数,因此我们在此所要计算的就是无穷多个未知量,它们排成了如下的序列:k S S S S ,,,,210 ???显然, S 0是十分容易求得的: n S =++++=11110 进而,在此此基础上可得到如下的递推关系,它把上述序列中的每一个项k S 与它前面的各个项121,,,S S S k k --和0S 联系起来: ∵ 1)1(12111211111++++++=++-+-++++m C m C m C m C m m k k k k k k k k k k ∴ 1)1(12111211111+++++=-++-+-++++m C m C m C m C m m k k k k k k k k k k 令n m ,,3,2,1 =,得 111111************+++++=-+-+-++++k k k k k k k k k k C C C C 122222312111211111+++++=-+-+-++++k k k k k k k k k k C C C C 133333412111211111+++++=-+-+-++++k k k k k k k k k k C C C C ………………………………。 1)1(12111211111+++++=-++-+-++++n C n C m C n C n n k k k k k k k k k k 将上面n 个式子相加得 (n+1)k+1-1=(k+1) S k +21+k C S k-1+31+k C S k-2+???+ S 0。 由此,如果我们已经知道了121,,,S S S k k --和0S ,由所说的关系式便可以把S k 确定出来;又由于我们已经求得了S 0,因此,我们就可按照指定的次序,“一个接一个依次地”递推地把所有的项都找出来。例如,在上述的递推公式中,如令k=1, 就有01221)1(S S n +=-+

相关文档