#include <stdio.h>
long func(int); //func函数调用
int main()
{
int n; //调用实参
scanf("%d",&n);
printf("%d=%ld",n,func(n));
return 0;
}
long func(int n) //调用形参
{
if (1==n)
return 1;
if (2==n)
return 2;
return func(n-2)+func(n-1);
}
已知斐波那契函数1,2,3,5,8…n-1,n得到分段函数n=1时为1;n=2时为2;n>2时为(n-1)+(n-2);
同理若求8的n次方时分段函数n=0时为1;n>1时为8*8^(n-1);此时return 8*func(n-1);
若求x的n次方
#include <stdio.h>
long func(int x,int n);
int main()
{
int x,n;
scanf("%d %d",&x,&n);
printf("%d^%d=%ld\n",x,n,func(x,n));
return 0;
}
long func(int x,int n)
{
if (n==0)
return 1;
return x*func(x,n-1);
}
在8的n次方基础上增加一个未知数,需要注意的是由于实参形参一一对应,func函数内部也需要改为func(x,n-1)