递归算法

#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;

}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值