HDU2817 A sequence of numbers
来源:互联网 发布:jquery latest.js cdn 编辑:程序博客网 时间:2024/05/16 03:58
问题链接:HDU2817 A sequence of numbers。基础训练题,用C语言编写程序。
这个问题是输入三个数,判断是等差数列还是等比数列,然后按照相应的数列进行计算,再做模除计算。
解决这个问题需要注意两点,一是计算模幂(套路);二是输入的数据需要使用long long类型。
计算模幂需要用二分法,以便加快计算速度。
AC程序如下:
/* HDU2817 A sequence of numbers */#include <stdio.h>#define M 200907// 模幂计算long long powermod(long long a, long long n, int m){ long long res = 1L; while(n) { if(n & 1L) { // n % 2 == 1 res *= a; res %= m; } a *= a; a %= m; n >>= 1; } return res;}int main(void){ int n; long long a, b, c, si, k; scanf("%d", &n); while(n--) { // 读入数据 scanf("%lld%lld%lld%lld", &a, &b, &c, &k); // 判定数列类型 if(b-a == c-b) { // 按照等差数列计算 int d = b - a; si = (a + (k - 1)*d) % M; } else { int q = b / a; si = (a * powermod(q, k-1, M)) % M; } // 输出结果 printf("%lld\n", si); } return 0;}
1 0
- hdu2817 A sequence of numbers
- hdu2817 A sequence of numbers
- HDU2817 A sequence of numbers
- hdu2817 A sequence of numbers
- HDU2817:A sequence of numbers(快速幂取模)
- hdu2817 A sequence of numbers (a^i mod n)
- hdu2817 A sequence of numbers && hdu1420 Prepared for New Acmer(快速幂取模)
- A sequence of numbers
- A sequence of numbers
- A sequence of numbers
- HDOJ A sequence of numbers
- A Sequence of Numbers HDU
- 3293. A Sequence of Numbers
- A Sequence of Numbers (dp)
- 题目58:A sequence of numbers
- hdu 2817 A sequence of numbers
- HDU 2817 A sequence of numbers
- hdu(2817)A sequence of numbers
- HDU 今年暑假不AC
- 扩展欧几里德算法解线性方程ax+by=c [模板]
- Cocos2d-x 综述——API 风格
- 中序后序,中序先序求二叉树
- spoj LCS 【后缀自动机】
- HDU2817 A sequence of numbers
- java并发常见问题
- Linux基础知识的学习(二)
- Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 2) E DFS
- 线性磁带文件系统(LTFS)
- java反射一些方法
- CSV文件excel打开乱码问题
- Android Studio 如何使用AIDL
- python点滴:判断字符串是否为合法json格式