欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門(mén)教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

C++快速冪與大數(shù)取模算法示例

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊: 次

一、快速冪

其實(shí)就是求(a^b)% p ,(其中a,b,p都比較大在int范圍內(nèi))這類(lèi)問(wèn)題。

首先要知道取余的公式: (a*b)%p=(a%p*b%p)%p 。

那么冪不就是乘機(jī)的累積嗎,由此給出代碼:

int fast(int a,int b,int p)

{  long long a1=a,t=1;

  while(b>0)  

  { if(b&1)     /如果冪b是奇數(shù)多乘一次,因?yàn)楹筮厱?huì)除2變偶數(shù),(7/2=3)

  t=(t%p)*(a1%p)%p;

  a1=(a1%p)*(a1%p)%p; 

  b/=2;  }

 return (int)(t%p);

}

二、大數(shù)取模

它的原理就是這個(gè)取余公式: (a+b)%p=(a%p+b%p)%p;

那么大數(shù)可以看做每一位的那位數(shù)字乘以自身的權(quán)然后每位相加。

如:12345678=(1*10000000)+(2*1000000)+…+8。

代碼如下:

char s[200];

#define mod 10000010;

int main()

{  while(gets(s))

{  int k=strlen(s),sum=0;

 for(int i=0;i<k;i++)

 sum=(sum*10+s[i]-'0')%mod;  /當(dāng)然要是擔(dān)心sum還可能溢出,那就對(duì)里邊再拆開(kāi)來(lái)取余

 cout<<sum<<endl;

} }

三、總結(jié)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)和工作能有所幫助。如果有疑問(wèn)可以留言交流。

上一篇:C語(yǔ)言 文件的隨機(jī)讀寫(xiě)詳解及示例代碼

欄    目:C語(yǔ)言

下一篇:C語(yǔ)言 格式化讀寫(xiě)文件詳解

本文標(biāo)題:C++快速冪與大數(shù)取模算法示例

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/2074.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有