用递归函数求m的n次方

如题所述

第1个回答  推荐于2018-05-29
#include <stdio.h>
#include <assert.h>
//note: 只能处理n是正整数的情况
float f(float m, int n)
{
assert(n>=0);
if(n == 0) return 1.0;
if(n == 1) return m;
return m * f(m, n-1);
}

int main()
{
float m;
int n;
printf("input m: ");
scanf("%f", &m);
printf("input n: ");
scanf("%d", &n);

if(n<0) printf("n error. must > 0");

printf("m pow n is %f\n", f(m, n));
return 0;
}本回答被提问者采纳
第2个回答  2010-11-23
#include <iostream>
using namespace std;

double fun(double m, int n)
{
if (n == 0)
return 1;
else
return m*fun(m, n-1);
}
int main()
{
cout << fun(1.1,2) << endl;
}

// fun函数就是用的递归,main里面做了示范,m可以用小数哦~ ,如果要看c版本的,就在下面
#include <stdio.h>

double fun(double m, int n)
{
if (n == 0)
return 1;
else
return m*fun(m, n-1);
}
int main()
{
printf("%f\n", fun(5, 3));
}本回答被网友采纳

怎么用递归调用写这个程序 求m的n次方
参考下面的 power 函数 include <stdio.h>double power(long long m, long long n){if (n == 0)return 1;else if (n < 0)return power(m, n+1) \/ m;elsereturn power(m, n-1) * m;}int main(int argc, const char *argv[]){long long m, n;if (argc != 3) {printf("...

...f(int m,int n)求m的n次方。要求用函数递归调用的方法。
if(n==1) count=m; \/\/如果初始时n值为1,直接输出m值 return count;}

要求用递归函数求m的n次方,为什么输入数字后,按Enter没反应?
void main() { int m,n; scanf("%d%d",&m,&n); printf("%d\\n",power(m,n)); } int power(int m,int n) { if(n==0)return 1; else return m*power(m,n-1); } 本回答被提问者和网友采纳 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 为你推荐:特别推荐 神舟13号此次任务达成...

...编写计算m的n次方的递归函数,并写出主函数进行测试*\/
int factor(int n ,int m) { int answer; if(n==0)\/\/<--- return 1; else {answer=factor(n-1,m)*m; return answer; } }int main(int argc, char *argv[]) { int factor(int n,int m); int n,m; scanf("%d%d",&n,&m); printf("%d",factor(n,m)); ...

汇编递归X的n次方,高手帮忙
;用递归求M的N次幂 ;输入:;第一个PUSH=底数 ;第二个PUSH=指数 ;输出:;AX=结果 ;--- power proc push bp mov bp,sp add bp,4 mov ax,[bp]cmp ax,1 jz Return dec ax push [bp+2]push ax call power mul word ptr [bp+2]pop bp ret 4 Return:mov ax,[bp+2]pop bp ret 4...

如何快速计算一个数的n次方
要快速计算一个数的n次方,可以使用以下方法:1. 分治法(递归):利用指数的特性,将指数n分解为两个较小的指数,并通过递归计算。- 如果n为偶数,那么 a^n = (a^(n\/2)) * (a^(n\/2))- 如果n为奇数,那么 a^n = a * (a^((n-1)\/2)) * (a^((n-1)\/2))这样,通过将指数...

C语言 用递归函数求数值的整数次幂 double power(double x,int p...
trip --BYE!\\n");return 0;} double power_positive(double n,int p){ double pow=1;if (p>0)pow=n*power_positive(n,(p-1));return pow;} double power_negative(double n,int p) \/\/用递归实现 { if (p==-1)return 1\/n;else return (1\/n)*power_negative(n,p+1);} ...

C语言。用递归函数 做n的m次方。。拜托。谢谢。
register double t;if (m == 0)return 1.0;if (m < 0)return 1.0 \/ recursive_pow_pos(n, -m);t = recursive_pow_pos(n, m \/ 2);if (m % 2)return t * t * (double)n;else return t * t;} int main(void){ int n, m;double result;double recursive_pow_pos(int,...

C语言题.用递归法写一个求幂的函数,并在主函数实现调用.要用c语言...
\/*x^n的值必须小于32767,否则输出的就是负数。因为,int只有这么大,正常的pow函数应该是float型或是double型,参数也应是float或是double型。*\/ #include <stdio.h> int power(int x,int n) { if (n>1) { return x*power(x,n-1); } else { if (n>0) return x; else return 1; }} void ...

C语言。用递归函数 做n的m次方。。拜托。谢谢。
if (m == 0)return 1.0;t = recursive_pow_pos(n, m \/ 2);if (m % 2)return t * t * n;else return t * t;} float recursive_pow_neg(int n, int m){ int recursive_pow_pos(int, int);return 1.0f \/ (float)recursive_pow_pos(n, -m);} int main(void){ int n...

相似回答