c语言 用迭代 求x的n次方

要迭代iterasive的算法
我会去测时间的
请不要再给我提供递归和最普通的算法了 我只要迭代的

第1个回答  2008-09-08
b^n = (b ^ (n / 2) ^ 2) (n为偶数)
b^n = b * b ^ (n - 1) (n为奇数)

给你函数,传入m,n,返回m的n次方
int fun(m, n)
{
if(n == 0)
return 1;
if(n%2==0)
return pow(fun(m, n/2), 2);
else
return m*fun(n-1);
}

(-_-!这种东西竟然不让用递归?!典型的递归啊本回答被提问者采纳
第2个回答  2008-09-08
double nExponent(double x, int n){
int iter = 1;
while(n != 0){
iter = iter*x;
n --;
}
return iter;
}

c语言 用迭代 求x的n次方
b^n = b * b ^ (n - 1) (n为奇数)给你函数,传入m,n,返回m的n次方 int fun(m, n){ if(n == 0)return 1;if(n%2==0)return pow(fun(m, n\/2), 2);else return m*fun(n-1);} (-_-!这种东西竟然不让用递归?!典型的递归啊 ...

c语言循环结构求X的N次方
"stdio.h"void main(){...\/\/在main函数里引用下面的函数}\/\/循环求X的N次方的函数double power(double x,int n){ double val=1.0;\/\/(初始化返回值)while(n--)\/\/(循环N次,N次方)val=val*x;\/\/(每次乘以X,相当于乘以1次方)return(val);\/\/(返回结果)} ...

用C语言程序设计:求x的n次方的函数。
pow()用来计算以x 为底的 y 次方值,然后将结果返回 可能导致错误的情况:如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error 错误。如果底数 x 和指数 y 都是 0,可能会导致 domain error 错误,也可能没有;这跟库的实现有关。如果底数 x 是 0,指数 y 是负数,可能会导致 do...

C语言 利用递归函数求X的n次方程序填空
} long power(x ,n)int x, n;{ long y;if(n>0)y = x * power(x, n-1);else y = 1;return y;}

c语言中编写x的n次方怎么弄啊?
C语言中计算x的n次方可以用库函数pow来实现。函数原型:double pow(double x, double n)。具体的代码如下:include <stdio.h> include <math.h> int main( ){ printf("%f",pow(x,n));return 0;} 注:使用pow函数时,需要将头文件#include<math.h>包含进源文件中。

C语言 函数功能是计算x的n次方
C语言中计算x的n次方可以用库函数来实现。具体的代码如下:include <stdio.h> include <math.h> int main( ) {printf("%f",pow(x,n));return 0;} C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符...

C语言中怎么算x的n次方呢?
在C语言中,你可以使用pow()函数来计算x的n次方。这个函数在math.h库中,因此你需要在程序开头包含这个库。以下是一个简单的示例:在这个示例中,我们计算了2的3次方,并将结果打印出来。%.2f是用来限制打印结果的小数点后的位数为2位。如果你希望结果更加准确,你可以使用long double或者double类型来...

c语言中编写x的n次方怎么弄啊?
在C语言中,要计算一个数的n次方,可以使用标准库函数`pow`。该函数的原型定义在头文件``中,函数用来计算`x`的`n`次方。以下是一个简单的示例代码:```c include include int main() { double x, n;printf("请输入x和n的值:");scanf("%lf %d", &x, &n);printf("%.2lf的%.2lf...

编程计算X的n次方。要求:用递归函数,用TC编译
double pow(double x,int n){ if(n==1){ return x;} else { double temp=pow(x,n-1);return (x*temp);} } void main(){ double a;int b;printf("Please input two numbers:");scanf("%lf%d",&a,&b);printf("%lf^%d=%lf\\n",a,b,pow(a,b));} 这个代码是对的。

c++递归计算x的n次方
include<iostream.h> double foo(int n,double x){ if(1==n){ return x;} else { if(n%2==0)return foo(n\/2,x*x);else return x*foo((n-1)\/2,x*x);} } void main(){ int n;double x;cin>>x>>n;cout<<foo(n,x)<<endl;} 改了一些错后可以实现求x^n功能了 ...

相似回答