快速幂的数列递推

2019-04-14 16:34发布

#include int main(void) { __int64 a,n,ans,m,t,i; scanf("%I64d",&t); for (i=1;i<=t;i++) { //简单的组数 scanf("%I64d",&n); //n是一个数 m=n; //先把m储存起来 a=2; ans=1; //a=a%(int)(9973); //把多余的给剪掉,感觉没用 while(n>0) { if(n%2==1) //如果是奇数,看起来ans-1+m就是得到的数字 ans=(ans*a)%(int)(9973); n=n/2; a=(a*a)%(int)(9973); } printf("%I64d ",(ans-1+m)%(int)(9973)); } return 0; }