快速幂,不多说了。
#include<cstdio>
#include<cstring>
int a[15001],b[15001],c[15001],n,p;void copy(int c[],int a[])
{for(int i=0;i<=c[0];i++)a[i]=c[i];
}void mutil(int a[],int b[],int c[])
{for(int i=0;i<=a[0]+b[0];i++)c[i]=0;for(int i=1;i<=a[0];i++){for(int j=1;j<=b[0];j++){c[i+j-1]+=a[i]*b[j];}}c[0]=a[0]+b[0]-1;for(int i=1;i<=c[0];i++){c[i+1]+=c[i]/10;c[i]%=10;}if(c[c[0]+1]>0)c[0]++;
}int main()
{freopen("cruel1.in","r",stdin);freopen("cruel1.out","w",stdout);scanf("%d%d",&n,&p);c[0]=1;c[1]=n;while(c[c[0]]>=10){c[0]++;c[c[0]]=c[c[0]-1]/10;c[c[0]-1]%=10;}copy(c,a);b[0]=1;b[1]=1;while(p>0){if(p%2!=0){mutil(a,b,c);copy(c,b);}mutil(a,a,c);copy(c,a);p/=2;}int counter=0;for(int i=b[0];i>=1;i--){if(counter==70){printf("n");counter=0;}counter++;printf("%d",b[i]);}fclose(stdin);fclose(stdout);return 0;
}
本文发布于:2024-02-04 13:56:09,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170708762156160.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |