hdu 2817 A sequence of numbers(快速幂取余)
2015-10-12 14:19
447 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2817
题目大意:给出三个数,来判断是等差还是等比数列,再输入一个n,来计算第n个数的值。
#include <iostream>
#include <cstdio>
#include <cmath>
#define m 200907
using namespace std;
__int64 fun(__int64 j,__int64 k)
{
__int64 s=1;
while (k)
{
if (k%2==1)
s=s*j%m;
j=(j*j)%m;
k/=2;
}
return s;
}
int main ()
{
__int64 t,a,b,c,n,s;
cin>>t;
while (t--)
{
cin>>a>>b>>c>>n;
if (b-a==c-b)
{
int d=b-a;
s=(a+(n-1)*d)%m;
}
else
{
int q=b/a;
s=(a*fun(q,n-1))%m;
}
printf ("%I64d\n",s);
}
return 0;
}
题目大意:给出三个数,来判断是等差还是等比数列,再输入一个n,来计算第n个数的值。
#include <iostream>
#include <cstdio>
#include <cmath>
#define m 200907
using namespace std;
__int64 fun(__int64 j,__int64 k)
{
__int64 s=1;
while (k)
{
if (k%2==1)
s=s*j%m;
j=(j*j)%m;
k/=2;
}
return s;
}
int main ()
{
__int64 t,a,b,c,n,s;
cin>>t;
while (t--)
{
cin>>a>>b>>c>>n;
if (b-a==c-b)
{
int d=b-a;
s=(a+(n-1)*d)%m;
}
else
{
int q=b/a;
s=(a*fun(q,n-1))%m;
}
printf ("%I64d\n",s);
}
return 0;
}
相关文章推荐
- hdu 1509 Windows Message Queue (优先队列)
- 【UI布局优化】Android布局优化的几种方式
- UICollectionView
- 解决PKIX:unable to find valid certification path to requested target 的问题
- HashMap按照value值进行排序
- Android经常使用UI包裹 - EditText
- List View Android官方API Guides
- 关于 UIEdgeInsets 的使用
- Operation not possible due to RF-kill
- 一些easyui组件不生效或者不能取值的问题解释
- QueryRunner的使用
- ui-grid
- iOS开发- UICollectionView详解+实例
- 第10章 信号
- AS gradle问题 解决记录
- HDU 4296 Buildings
- HDU 5033 Building(模拟凸包建立过程)
- iOS使用xib自定义uiview
- 【UWP】UI适配整理
- Android UI线程与子线程