189 8069 5689

递归函数c语言pow 递归函数c++语言

一道C语言的题目,递归法

#include

公司主营业务:成都网站制作、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出漳州免费做网站回馈大家。

#include

/*求n的

阶乘

,递归,

分母

部分

*

结束条件为:1的阶乘=1

*

递归时,一定要有结束条件

*/

int

factorial

(n)

{

if(n==1)

//递归结束条件,1的阶乘为1

return

1;

else

return

n*factorial(n-1);

//n的阶乘为n乘以(n-1)!

}

int

main()

{

int

n,x;

size_t

i;

//i为

无符号整数

double

re=0;

printf("input

n

and

x:");

scanf("%d%d",n,x);

//输入n和x的值

for(i=1;i=2*n-1;i+=2)

{

/*pow函数求的是x的i次方,分母为

i的

阶乘。本部分可以优化,因为i的阶乘算出来了,所以i+2的阶乘就是i的阶乘*(i+1)*(i+2),不用重复来计算阶乘。自己可以试试*/

re

+=

pow(x,i)/factorial(i);

}

printf("\nn=%d\tx=%d\tresult=%f\n",n,x,re);//打印出

最后的结果

return

0;

}

C语言:用递归法求一个数的幂

#includestdio.h

int

power(int

x,int

n)

{

if(n

==

0)

//任何数的0次方都是1

return

0;

else

if(n

==1)

//如果是1次方

则返回本来的值

return

x;

else

//否则递归循环

return

x*power(x,n-1);

}

main()

{

printf("%d

",power(3,3));

printf("%d

",power(4,2));

getchar();

return

0;

}

C语言 用递归函数求数值的整数次幂 double power(double x,int p)输入负整数次幂时出现问题

double power_negative(double n,int p)

{

double pow = 1;

int q;

q=-p;

if(q0)

pow = power_negative(n,1-q) / n;

return pow;

}

改成这样,虽然你那个写的是递归调用,但是返回的却是1/pow,那么就会是0.5 * 2 * 0.5 * 2 * 0.5这样的形式返回,所以最终无论是多少,结果都是0.5,而且递归时应该用1-q,因为你调用负数求幂,必须使参数为负才会正确


当前文章:递归函数c语言pow 递归函数c++语言
当前URL:http://cdxtjz.cn/article/doseids.html

其他资讯