day 04 (a)哈诺塔函数 hanoi 形参 实参分析

//http://www.tudou.com/programs/view/e0YyEezlkSk 视频链接
2^(n-1)
思路:
if(n==1)
cout<<A<<"-->"<<C<<endl;
else
{
hanoi(n-1,A,C,B); //首先,将A柱子上的n-1个盘子,通过C柱子移到B柱子。
cout<<A<<"-->"<<C<<endl; //然后,将A柱子上第N个盘子,移到C柱子上。
hanoi(n-1,B,A,C); //最后,将B柱子上的N-1个盘子,通过A柱子移到C柱子。
}

void Move(char chSour,char chDest)
{
/打印移动步骤/
printf("\nMove the top plate of %c to %c",chSour,chDest);
}
Hanoi(int n,char chA,char chB,char chC)
{
/检查当前的盘子数量是否为1/
/盘子数量为1,打印结果后,不再继续进行递归/
if(n==1)Move(chA,chC);
/盘子数量大于1,继续进行递归过程/
else
{
Hanoi(n-1,chA,chC,chB); //将A柱子上的N-1个盘子,通过C移到B
Move(chA,chC); //再将A柱子上的第N个盘子,通过A移到C
Hanoi(n-1,chB,chA,chC); //最后,将B柱子上的N-1个盘子,通过A移到C
}
}
main()
{
int n ;
/输入盘子的数量/
printf("\nPlease input number of the plates: ");
scanf("%d",&n);
printf("\nMoving %d plates from A to C:",n);

/*调用函数计算,并打印输出结果*/
Hanoi(n,'A','B','C');           //有n个牌子,将A柱子的盘子通过B移到C 

}

include<iostream>

include<stdio.h>

using namespace std;

enum Sort{ A,B,C,D,E } ; //注意放的位置

/*
void show(int x) //某一个语句块的变量称为局部变量 仅在此范围语句块内有效。 eg:x为形式参数
{
cout<<x<<endl;
首先定义上面
形式参数:定义函数时函数名后括号中的变量名!
实际参数:调用函数时函数名后括号中的表达式!

1.形参未被调用时,不占存储单元。形参只在调用过程中占用存储单元。形参定义时必须指定类型!
2.实参是常量。变量或者表达式!要与形参类型一致!而且实参要有确定的值,占用储存单元,在调用过程中实参将值赋给形参!
3.C中实参对形参数据传递时时单向传递。在存储单元中是不同的单元!/
/

void order(char name[40],int num=1,char thank[]="谢谢!") //int 有默认值,当并不输入时,自动默认为1. 并且存在默认值的参数应靠右摆放。
{
cout<< name<< ":" << num << "份\t" <<thank<<endl;
}
/
void order(char name[],bool sex)
{
cout<< name[20] <<",是个"<<(sex?"帅哥":"美女") <<endl; //三目运算符的巧妙用法
}
main()
{
/

char name[40];
int num;
cin>>name>>num;
Sort a = A; //enum
cout << a <<endl;
order(name,num); //形式参数 和默认参数的理解 //传参过程 1.保存现场 2.传参数 3.执行形式参数语句 4.带回结果
cout<< "hello world" <<endl; //输出语句
/
/

char name[20];
bool sex;
cout<<"please enter name and true /false"<<endl;
cin>>name;
cout<<name<<endl;
cin>>sex;
order(name,sex); //---------------------疑问?为何传入name 在形参中无法读取?可以用指针解决吗?,
//order("xiao",true);
*/
}

c++ 哈诺塔

include<iostream>

using namespace std;

void hanoi(int n,char A,char B,char C);
main()
{

char ch1='A';
char ch2='B';
char ch3='C';

int n;
cout<<"please enter the number for post."<<endl;//输入柱子的数量
cin>>n;
hanoi(n,'A','B','C');//将Pa柱子上的n个盘子,通过Pb移到Pc;

}

void hanoi(int n,char A,char B,char C)
{
if(n==1)
cout<<A<<"-->"<<C<<endl; //如果仅一个盘子,将A--C
else
{
hanoi(n-1,A,C,B); //首先,将A柱子上的n-1个盘子,通过C柱子移到B柱子。
cout<<A<<"-->"<<C<<endl; //然后,将A柱子上第N个盘子,移到C柱子上。
hanoi(n-1,B,A,C); //最后,将B柱子上的N-1个盘子,通过A柱子移到C柱子。
}
}

//常见递归函数

/* 9 6 3 0

include<iostream>

using namespace std;
int recursion (int n);
main()
{
int n;
cin>>n;
recursion(n);
}

int recursion(int n)
{
if(n==1||n==2||n==0)
cout<<n<<endl;
else
{
recursion(n-3);
cout<<n<<endl;
}

}
*/

/*

include<iostream>

using namespace std;
int factorial(int n);

main()
{
int n;
cout<<"please input number factorial"<<endl; //输入数的阶乘
cin>>n;
cout<<factorial(n)<<endl;
}

int factorial(int n)
{
if(n==1||n==0)
return 1; //注意点
else
{
//return
return n*factorial(n-1); //注意点 此为两个 return

//cout<<n<<endl;

}
}
*/

/* 简单递归的理解分析

include<iostream>

using namespace std;
int show(int n);
main()
{
int n;
cin>>n;
show(n);
}

int show(int n)
{
if(n>9)
{
show(n/10); //如果数大于10 ,就除以10.
cout<<" ";
}
cout << n%10; //if n小于10,就求与
}

//432 32 //先除以100
//32 2 //再除以 10
//2 <=9 2%10 ==2
斐波那契数列

include<iostream>

using namespace std;

int fib(int n);//斐波那契数列 1 1 2 3 5 8 f(n)=f(n-1)+ f(n-2)

main(){
int n;
cin>> n;
cout<<fib(n)<<endl;; //输出斐波那契函数

}

int fib(int n)
{
if(n == 1 || n == 2)
{
return 1; //思路解析:1. 将数看成两部分,即三个数。{F(n-2)、F(n-1)F(n)} 已知 Fn=F(n-1)+F(n-2) 并当f(n=1||n==2)=1时,依次递归求解
}
return fib(n - 2) + fib(n - 1); //两个return 语句记住即可 //fib(3) =f(1)+f(2) fib(4) =f(2)+f(3)
}
标示盘子的编号:

include <iostream>

using namespace std;

void hanoi(int top,int n,char A,char B,char C);

main()
{
hanoi(1,4,'A','B','C');//将Pa柱子上的n个盘子,通过Pb移到Pc
}
void hanoi(int top, int n,char A,char B,char C) //几号盘子 剩几个盘子 从哪 到哪 临时位置
{
if(n==1)
cout<< top <<" :"<< A <<"-->"<< C <<endl; //如果仅一个盘子,将A--C
else
{
hanoi(top , n-1 , A,C,B); //将A柱子上的n-1个盘子通过C移到B
cout<< top +n-1 <<" :"<< A <<"-->"<< C <<endl; //将A柱子上的最后一个盘子,通过A移到C
//hanoi(top+n-1 , 1 ,A,B,C) ; //然后,将A柱子上第N个盘子,移到C柱子上。
hanoi(top, n-1 , B,A,C); //最后,将B柱子上的N-1个盘子,通过A柱子移到C柱子。
}
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • //出自51博客:www.Amanda0928.51.com 第一章 一、选择题 1.B; (typedef ,t...
    Damongggggg阅读 11,116评论 0 1
  • 题目类型 a.C++与C差异(1-18) 1.C和C++中struct有什么区别? C没有Protection行为...
    阿面a阅读 7,644评论 0 10
  • 基本概念 1a general-purpose programming language用于创建计算机程序。艺术类...
    伍帆阅读 1,309评论 0 1
  • 每一句 离别的话语, 都像是从心底 溅出的痛的碎片。
    风过如初阅读 133评论 0 0
  • 你好~我是传说中安澜的虚拟小宝贝——幕后黑手,你可以叫我手手~ 请认真、仔细地将这篇介绍从头看到尾,哪里不明白都可...
    安澜文学社阅读 1,267评论 15 7