- 赶鸭子问题:一个人赶着鸭子去村庄卖,每经过一个村子卖出一半又一只,经过七个村庄后还剩下两只鸭子,问出发时共赶了多少只鸭子
#include<stdio.h>
int fun1(int num2);
int fun2(int day);
int main(int argc, const char *argv[])
{
int tao=fun2(9);
int num1=fun1(0);
printf("%d个桃\t第1天有%d个鸭子\n",tao,num1);
return 0;
}
//yazi
int fun1(int num2)
{
if(num2==7)
{
return 2;
}
else
{
return(fun1(num2+1)+1)*2;
}
}
//tao
int fun2(int day)
{
if(day==10)
{
return 1;
}
else
{
return (fun2(day+1)+1)*2;
}
}
![](https://img-blog.csdnimg.cn/2ef0970e17c34869bb2e94889e4518d6.png)
- 终端输入一个数,使用递归输出他的每一位,按位数从高到低输出,要求递归函数不能有返回值 void fun(int n);终端输入“1234” ,1 2 3 4
#include<stdio.h>
void fun(int n);
int main(int argc, const char *argv[])
{
int a=0;
scanf("%d",&a);
fun(a);
putchar(10);
return 0;
}
void fun(int n)
{
if(n>9)
{
fun(n/10);
printf("%d\t",n%10);
}
else
{
printf("%d\t",n);
}
}
![](https://img-blog.csdnimg.cn/30a0eb685f954ae6883932814007bba2.png)