的递归总是由两部分组成,递归形式与递归终止条件。本例的算法就是基于如下的递归数学模型:
非法
fact(n) 1
n*fact(n 1) (n 1)(n 1) (n 1)
例 汉诺塔问题(Tower of Hanoi)。
// filename:hanio.cpp
// Tower of Hanoi
#include<iostream.h>
int hanoi(int number,char a[],char b[],char c[]);
int main()
{
int number;
cout<<"Please enter the number of disks to be moved:";
cout<<endl;
cin>>number;
hanoi(number, "PileA","PileB","PileC");
return 0;
}
int hanoi(int number,char a[],char b[],char c[])
{
if(number>0){
hanoi(number-1,a,c,b);
cout<<"Move disc "<<number<<" from "<<a<<" to "<<b<<endl;
} } hanoi(number-1,c,b,a); return 0;
2.1.5 C++库函数
C++语言的核心部分很小,其外壳却十分丰富。这个外壳中提供丰富的库函数。程序员使用库函数无须再自行定义,只要注意以下三点便可:
(1) 了解函数的功能
(2) 了解函数的原型
(3) 库函数按功能分为不同的库,每个库都有相应的头文件,给出了该库中各个函数的原型声明等有关信息。程序员使用库函数之前只需在程序中使用#include指令嵌入相应的头文件而不必再进行函数的原型说明。
//filename:ex215.cpp
#include<iostream.h>
#include<math.h>
int main()
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新教学研究C++程序设计教程 第2章 过程的组织和管理(5)全文阅读和word下载服务。
相关推荐: