前言
信息学奥赛一本通的数学章节有的比较全面,有的尚待改进,在这里的快速幂就是一个例子…………
提示:以下是本篇文章正文内容,下面案例可供参考
一、题目简意?
给定若干个数,判断是等比数列还是等差数列,并且求出第 k k k 项的值
二、分析?
判断任意三项,差相等就会等差数列,商相等就是等比数列,容易证明三项可以唯一确定这个数列是等差数列或者等比数列。
对于等差数列,直接带上通项公式。
对于等比数列,也直接带上通项公式。
但是鉴于指数过大导致时间复杂度过高。
考虑直接快速幂,即可保证时间复杂度。
快速幂可以这么写:
ll power(ll base,ll index){
ll ans=1;
for(;index;index>>=1){
if(index&1){
ans=(ans*base)%mod;
}
base=(base*base)%mod;
}
return ans;