递归算法
普通网友
这个作者很懒,什么都没留下…
展开
-
求M和N的最大公约数
题目描述求两个自然数M和N的最大公约数(M,N都在长整型范围内)样例输入45 60样例输出15AC#include<iostream>using namespace std;int gcd(int a,int b){ if(a%b==0){ return b; } else{ return gcd(b,a%b); }}main(){ int a,b; cin>>a>>b; cout<<gcd(a,b)原创 2022-05-01 16:45:20 · 1940 阅读 · 0 评论 -
经典递归问题——汉诺塔
汉诺塔问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。面对庞大的数字(移动圆片的次数)18446744073709551615,看来,众僧们耗尽毕生精力也不可能完成金片的移动。 后来,这个传说就演变为汉诺塔游戏: 1.有三根杆子A,B,C。A杆上有若干碟子 2.每.原创 2022-05-10 18:23:46 · 871 阅读 · 0 评论 -
【递归】汉诺塔游戏
题目描述汉诺塔问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。面对庞大的数字(移动圆片的次数)18446744073709551615,看来,众僧们耗尽毕生精力也不可能完成金片的移动。 后来,这个传说就演变为汉诺塔游戏: 1.有三根杆子A,B,C。A杆上有若干碟子原创 2022-05-10 18:19:30 · 775 阅读 · 0 评论 -
十字方阵c++
题目描述小t同学最近对递归图案十分入迷,如著名的Hilbert曲线就是递归的,小t自己也想创作一个递归图案,有一次小t在经过一座基督教堂时看到了屋顶上的大十字架,他瞬间就产生了灵感,想出了一个递归的十字方阵图案,这个图案是由2^n-1行2^n-1列的字符构成的,其递归定义如下:如果n=1,它是1行1列的字符方阵,即一个字符,这个位置上的字符是'+',表示十字架。当n>1时,这个字符方阵被中间的一个大大的十字架(用+,-,|表示)递归地分解成大小相同的四部分,每一部分是一个2^(n-1)-1行2^原创 2022-07-08 13:24:16 · 1587 阅读 · 2 评论 -
[递归]阿克曼函数
阿克曼函数是非原始递归函数的例子;它需要两个自然数作为输入值,输出一个自然数。它的输出值增长速度非常高,仅是(4,3)的输出已大得不能准确计算。1920年代后期,数学家大卫·希尔伯特的学生Gabriel Sudan和威廉·阿克曼,当时正研究计算的基础。Sudan发明了一个递归却非原始递归的Sudan函数。1928年,阿克曼又独立想出了另一个递归却非原始递归的函数。他最初的念头是一个三个变量的函数A(m,n,p),使用康威链式箭号表示法是m→n→p。阿克曼证明了它是递归函数。希尔伯特在On the I..原创 2022-07-07 11:12:32 · 2355 阅读 · 2 评论