编写递归算法,计算xy的值。
提示:F(x,y)=1 y=0
F(x,y)=F((x^2),y/2 ) y为偶数
F(x,y)=x*F(x,y-1) y为奇数
例如:F(4,3)=F(4,2)*4=F(16,1)*4=F(16,0)*64=64
【提示】
按题中给定的递归公式实现即可。
【解答】
#include<stdio.h>
int main()
{
int F();
int x,y;
printf("请依次输入x,y的值并以空格键隔开。\n");
scanf("%d %d",&x,&y);
printf("F=%d\n",F(x,y));
return 0;
}
int F(int x,int y)
{
if(y==0)
return 1;
if(y%2==0)
return F(x*x,y/2);
return x*F(x,y-1);
}