本文主要是介绍hdu(2817)A sequence of numbers,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这个题,只要学了二分幂算法,就easy了。
用二进制的方法,当他是奇数的时候才乘ans上。。
#include<stdio.h> #define m 200907 __int64 power(__int64 a,__int64 b) { __int64 ans=1; a=a%m; while(b) { if(b%2) ans=ans*a%m; b=b/2; a=a*a%m; } return ans; } int main() { __int64 t,a,b,c,q,d,k,s,ans; scanf("%I64d",&t); while(t--) { scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&k); if(2*b==a+c) { d=b-a; s=a%m+(k-1)*d%m; printf("%I64d\n",s%m); } else if(b*b==c*a) { q=b/a; ans=a%m*power(q,k-1)%m; printf("%I64d\n",ans%m); } } return 0; }
这篇关于hdu(2817)A sequence of numbers的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!