如果n比较小,可以吧 result *= a循环n次。。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、成都网站设计、外贸营销网站建设、武隆网络推广、微信小程序开发、武隆网络营销、武隆企业策划、武隆品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供武隆建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
如果n比较大, 可以逐步来算。 这样考虑,f(n) = 2^n 如果有了 f(m)的结果, 那么 f(2m)和f(2m+1) 就分别等于 f(m)*f(m)和f(m)*f(m)*a
所以可以从最高位开始查看n的每一位, 如果这一位是1, 那么 result = result * result * a; 如果这一位是0,那么result = result * result; 其中result 的初始值是1。 这样复杂度就是log(n)的
#includestdio.h
double powmy(double a,int n)
{
double retVal=1;
while(n0)//配合下面的n-- 循环执行n次
{
retVal=retVal*a;//每次乘a 这样就得到a的n次幂
n--;
}
return retVal;//返回结果
}
main()
{
double b=0,jg=0;
int n=0;
printf("底数,幂次方=?");
scanf("%lf %d",b,n);//输入
jg=powmy(b,n);
printf("结果为:%lf\n",jg);//输出结果
}
最简单就是使用for循环,进行n次相乘,最终的结果就是a的n次方,望采纳
据我所知你的a和n必须是给出的数。,,或者是上端的输入,,你要用的话可以加一个头文件
#includemath.h
下面是调用函数
pow(a,n) 表示的就是a的n此方