C语言求幂的三种方法 您所在的位置:网站首页 c加加中次幂的表示方法 C语言求幂的三种方法

C语言求幂的三种方法

2024-04-08 00:45| 来源: 网络整理| 查看: 265

用三种方法求幂值 一. 暴力递归

直接对x乘y次

int result(int x,int y) { int num=1; for (int i=1; i if(y==0)return 1; if(y==1)return x; int t=result(x, y/2)*result(x, y/2); if(y%2==0)return t; else return t*x; }

当幂指数y为奇数时,还要乘一次自身

三 .二进制求幂

假设指数为7,可写为 7 = 2 2 + 2 1 + 2 0 其 二 进 制 形 式 为 111 , 且 每 一 位 都 等 于 前 一 位 的 平 方 7=2^{2}+2^{1}+2^{0} 其二进制形式为111,且每一位都等于前一位的平方 7=22+21+20其二进制形式为111,且每一位都等于前一位的平方

long long qpow(int base,int p){ long long ans=1,tmp=base;//从底数开始乘,不停自乘 while(p!=0){//指数不是0 if(p&1){ ans=(ans*tmp); } tmp=(tmp*tmp);//自乘 p=p>>1;//访问下一位 } return ans; }

再此方法下,时间复杂度最低

希望大家三连关注,嘻嘻,我会继续更新c语言和python方面的文章,希望大家多多支持。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有