用二分法设计求出a的N次幂
来源:百度知道 编辑:UC知道 时间:2024/05/31 14:49:01
教大哥级别任务帮忙,要交的,算法科目的题,要程序,C语言的
#include <stdio.h>
double Pow(double a, int n)
{
double p;
if (n < 0)
return 0;
else if (n == 0)
return 1.0;
else
{
p = Pow(a, n/2);
p *= p;
if (n%2)
p *= a;
return p;
}
}
int main()
{
double a;
int n;
printf("A = ");
scanf("%lf", &a);
printf("\nN = ");
scanf("%d", &n);
printf("\n%lf^%d = %lf\n", a, n, Pow(a, n));
return 0;
}
#include <stdio.h>
#include <stdlib.h>
double pow(double a,int N)
{
double ans = 1;
int i;
for(i = 30;i >= 0 && !(N & (1 << i));i--);
for(;i >= 0;i--)
{
ans *= ans;
if(N & (1 << i))
ans *= a;
}
return ans;
}
int main()
{
int N