From 364f59c007db4a98bc4bc93f5346fc9b4a0a616a Mon Sep 17 00:00:00 2001 From: luoguyuntianming <46839655+luoguyuntianming@users.noreply.github.com> Date: Sun, 14 Jul 2019 15:19:50 +0800 Subject: [PATCH] =?utf8?q?=E6=B7=BB=E5=8A=A0=EF=BC=9A=E9=AB=98=E7=B2=BE?= =?utf8?q?=E5=BA=A6=E5=BF=AB=E9=80=9F=E5=B9=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- docs/math/quick-pow.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/docs/math/quick-pow.md b/docs/math/quick-pow.md index 6bcb572b..872a7048 100644 --- a/docs/math/quick-pow.md +++ b/docs/math/quick-pow.md @@ -87,3 +87,62 @@ long long qpow(long long a, long long b, long long p) { ??? note "ä¾é¢" åä¸å[Luogu P1226](https://www.luogu.org/problemnew/show/P1226) + +## é«ç²¾åº¦å¿«éå¹ + +??? note "åç½®æè½" + 请å å¦ä¹ [é«ç²¾åº¦](https://oi-wiki.org/math/bignum/) + +??? note "ä¾é¢ãNOIP2003æ®åç»æ¹ç¼Â·éº¦æ£®æ°ãï¼[åé¢å¨æ¤](https://www.luogu.org/problemnew/show/P1045)ï¼" + é¢ç®å¤§æï¼ä»æ件ä¸è¾å ¥Pï¼1000
+ using namespace std; + int a[505],b[505],t[505],i,j; + int mult(int x[],int y[])//é«ç²¾åº¦ä¹æ³ + { + memset(t,0,sizeof(t)); + for(i=1;i<=x[0];i++) + { + for(j=1;j<=y[0];j++) + { + if(i+j-1>100) continue; + t[i+j-1]+=x[i]*y[j]; + t[i+j]+=t[i+j-1]/10; + t[i+j-1]%=10; + t[0]=i+j; + } + } + memcpy(b,t,sizeof(b)); + } + void ksm(int p)//å¿«éå¹ + { + if(p==1) + { + memcpy(b,a,sizeof(b)); + return; + } + ksm(p/2); + mult(b,b); + if(p%2==1) mult(b,a); + } + int main() + { + int p; + scanf("%d",&p); + a[0]=1;a[1]=2; + b[0]=1;b[1]=1; + ksm(p); + for(i=100;i>=1;i--) + { + if(i==1) + { + printf("%d\n",b[i]-1); + } + else printf("%d",b[i]); + } + } +``` -- 2.11.0