博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3的幂的和
阅读量:7062 次
发布时间:2019-06-28

本文共 768 字,大约阅读时间需要 2 分钟。

题目链接:

题目:

求:3^0 + 3^1 +...+ 3^(N) mod 1000000007
 
Input
输入一个数N(0 <= N <= 10^9)
Output
输出:计算结果
Input示例
3
Output示例
40

分析:快速幂+乘法逆元,题目很简洁,其实就是求等比数列的前n项和,等比数列的钱n项和公式为:Sn=a1(1-q^n)/(1-q),a1=3^0=1,q=3,化简后求解,注意从0到n一共是n+1项哦!!!

乘法逆元:除以一个数取模等于乘以它的乘法逆元,由费马小定理得x=a^(p-2)%p;

乘法逆元学习链接:

AC代码:

#include
#include
#include
#include
#define MOD 1000000007using namespace std;typedef long long ll;ll ksm(ll x,ll n){ ll ans=1; while (n) { if (n&1) ans=(ans*x)%MOD; x=(x*x)%MOD; n>>=1; } return ans;}int main(){ ll n,sum; cin>>n; sum=(ksm(3,n+1)-1)*ksm(2,MOD-2)%MOD; cout << sum << endl; return 0;}

 

转载于:https://www.cnblogs.com/lisijie/p/7683363.html

你可能感兴趣的文章
Android org.json.JSONArray cannot be converted to JSONObject
查看>>
Android2.3系统 自定义的PopupWindow在实例化时报空指针异常
查看>>
javascript 要注意的事项
查看>>
phpexcel中文手册
查看>>
Flask学习笔记
查看>>
浏览器缓存问题的解决
查看>>
windows一些问题收集。
查看>>
luaxml 确实好用,节点检索超方便
查看>>
unity custum font
查看>>
操作系统的一些必需知识
查看>>
win8各种开发问题收集及解决
查看>>
1.检索数据 ---SQL
查看>>
Sublime Text 2 编译C++ C# Python
查看>>
那些快乐的不快乐的事
查看>>
ios 进入后台 一段时间在进入前台 动画消失
查看>>
ABAP内表(internal table)有关的系统变量
查看>>
性能优化系列总篇
查看>>
jquery 的相关 width 和 height 方法辨析
查看>>
JavaScript文本的上下垂直轮播
查看>>
Projection the 2D spectrum of an image to 1D with MATLAB
查看>>