递归程序(未完待续)

时间:2022-07-05 00:25:59

一、求n的m次方。
程序分析:
1、如果m的值为0,则输出为1。
2、如果不为0,则n*n^(m-1).

#include<stdio.h>
int j(int n,int m);
void main()
{
int n,m;
printf("请输入m和n的值\n");
scanf("%d%d",&n,&m);
printf("result=%d",j(n,m));

}
int j(int n,int m)
{
if(m==1)
return n;
else
return n*j(n,m-1);
}

2、若一头小牛,从出生起,第四年开始,每一年生一头母牛,问第n年有多少头母牛。
程序说明:
f(1)=1.
f(2)=1.
f(3)=1.
f(4)=f(3)+f(1)=2
f(5)=f(4)+f(2)=3
f(6)=f(5)+f(3)=4
f(7)=f(6)+f(4)=6
……..
f(n)=f(n-1)+f(n-3)

#include<stdio.h>
int j(int n);
void main()
{
int n;
printf("请输入n的值\n");
scanf("%d",&n);
printf("result=%d\n",j(n));

}
int j(int n)
{
if(n==1||n==2||n==3)
return 1;
else
return j(n-1)+j(n-3);
}

3、完全数(perfect number)。
对于一个整数,所有的因子和是该数(包括1但是不包括该数本身)。
例如:6=1+2+3.是完全数。