递归算法

#include<stdio.h>
/*
*作者:辰溪
*时间:2018年11月17日
*/
int main()
{
//利用递归函数
int f(int n);
f(1);
return 0;
}
int f(int n)
{
int sub;//定义卖了鸭子的数量
if(n==8)
{
sub=2;
printf(“经过第%d个村庄还剩%d只鸭子\n”,n,sub);
}else
{
sub=(f(n+1)+1)*2;
printf(“经过第%d个村庄还剩%d只鸭子\t卖了%d只鸭子\n”,n,sub,(sub/2+1));
}
return sub;
}

递归算法

#include<stdio.h>
/*
作者:辰溪
时间:2018年11月17日
/
int main()
{
int n;//定义输入的自然数
int count=1;//定义这个自然数变为1需要的步数
printf(“Please input a number n:”);
scanf("%d",&n);
do{
//判断输入的这个数是奇数还是偶数
if(n%2)//这个数是奇数
{
n=n
3+1;
printf("[%d]:%d
3+1=%d\n",count++,(n-1)/3);
}
else
{
n/=2;
printf("[%d]:%d/2=%d\n",count++,2
n,n);
}
}
while(n!=1);
}

递归算法

递归算法@TOC
#include
using namespace std;
/*
*作者:辰溪
*时间:2018年11月17日
/
const char
s[10]={" ",“ABC”,“DEF”,“GHI”,“JKL”,“MNO”,“PQRS”,“TUV”,“WXYZ”};//定义每个键盘对应的字符
int num[10]={0,0,3,3,3,3,3,4,3,4};//定义每个键对应的字符个数
char input[20];
char output[20];
//定义函数,两个参数p是输入的字符的码值,len是num数组中对应的长度0
void solve(int p,int len)
{
if(!(p-len))
{
output[len] = ‘\0’;
cout<<output<<endl;
return;
}
int i;
for(i=0; i<num[input[p]]; i++)
{
output[p] = s[input[p]][i];
solve(p+1,len);
}
}

int main()
{
scanf("%s",input);
int len = strlen(input);

int total = 1;
for(int i=0; i<len; i++) 
{
    input[i] -= '0';
    total *= num[input[i]];
}
solve(0,len);

cout<<"The total num of combination is "<<total<<endl;
return 0;

}

递归算法