math.h文件中含有乘方(包括開方)的庫函數(shù)
安陸網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
表示為:pow(x,y)
其中x和y都是雙精度浮點(diǎn)(double)型,x是底數(shù),y是指數(shù)(如果是小數(shù)即為開方)
表示為:double pow(double x, double y);
拓展資料
C語言pow()函數(shù):求x的y次方(次冪)
頭文件:
pow() 函數(shù)用來求 x 的 y 次冪(次方),其原型為:
pow()用來計(jì)算以x 為底的 y 次方值,然后將結(jié)果返回。設(shè)返回值為 ret,則 ret = xy。
實(shí)例:
輸出結(jié)果:
C語言sqrt()函數(shù):求給定值的平方根
頭文件:
sqrt() 用來求給定值的平方根,其原型為:
實(shí)例計(jì)算200 的平方根值。
輸出結(jié)果:
方法1:
遞歸、循環(huán)、樓上的說的很詳細(xì)了
方法2:
高精度+二分
下附法2的程序,大概在x=5000時(shí)可以1s跑出(我的7年老電腦上。。。)
你的機(jī)子肯定能跑更大的。。。
結(jié)果的位數(shù)如果不夠在maxn那里改,不過誰也算不出1000w位吧,應(yīng)該夠了。。。
在文件"hello.in"中輸入,輸出在"hello.out"
#includestdio.h
#define
maxn
10000000
#define
max(a,b)
ab?a:b
int
x,a[maxn],b[maxn],o;
int
ans[maxn],p;
int
s3[maxn];
void
Mult(int
s1[],int
*l1,int
s2[],int
l2)
{
int
i,j;
for(i=1;
i=*l1+l2+2;
i++)
s3[i]=0;
for(i=1;
i=*l1;
i++)
for(j=1;
j=l2;
j++)
s3[i+j-1]+=s1[i]*s2[j];
j=*l1+l2-1;
for(i=1;
i=j;
i++)
if(s3[i]9)s3[i+1]+=s3[i]/10,s3[i]%=10,j=max(j,i+1);
for(i=1;
i=j;
i++)
s1[i]=s3[i];
*l1=j;
}
void
Init(void)
{
int
i,j=0,k;
i=x;
p=1;
ans[1]=1;
for(;i;i=i1)
a[++j]=i1;
while(x)
b[++o]=x%10,x/=10;
for(i=j;
i;
i--)
{
Mult(ans,p,ans,p);
if(a[i])
Mult(ans,p,b,o);
}
for(i=p;
i=1;
i--)
printf("%ld",ans[i]);
printf("\n");
}
int
main(void)
{
freopen("hello.in","r",stdin);
freopen("hello.out","w",stdout);
scanf("%ld",x);
Init();
return
0;
}
C語言中表達(dá)n次方可以用pow函數(shù)。
函數(shù)原型:double pow(double x, double y)
功 能:計(jì)算x^y的值
返 回 值:計(jì)算結(jié)果
舉例:
double a;a = pow(3.14, 2); // 計(jì)算3.14的平方,并將結(jié)果保存在變量a中
注:使用pow函數(shù)必須將頭文件#includemath.h包含進(jìn)源文件中