十五道简单的C语言程序设计送分题之十四。

来源:百度知道 编辑:UC知道 时间:2024/06/04 11:46:17
再过几天就期末考试了,老师给出了题目范围,不过时间有限,没时间做啦,只好帖到这里送些分给诸位朋友了。
编写一个C程序,功能是:采用递归方法计算x的n次方。

#include "stdio.h"

int f(int x,int n)
{
if(n==1)return x;
else
return x*=f(x,n-1);

}

void main()
{
int x,n;
scanf("%d %d",&x,&n);
printf("%d",f(x,n));
}

long pow(int base,int n)
{
long ret = 0;
if (base == 0 || base == 1)
{
ret = base;
}
else if(n == 0)
{
ret = 1;
}
else
{
long t = pow(base, n-1);
for (int i = 0; i < t; i++)
{
ret *= base;
}
}

return ret;
}

求几次方或阶乘的值一定要注意结果的取值范围,所以一般应定义为双精度型,至少也要长整型!!!否则10的10次方都不会出正确结果。
#include "stdio.h"
double mypow(double x,int n)
{ if(0==n) return 1;
else return x*mypow(x,n-1);
}
main()
{ int n;
double x;