2017年第0届浙江工业大学之江学院程序设计竞赛决赛—K qwb与小数
2017-06-02 19:41
274 查看
Description
qwb遇到了一个问题:将分数a/b化为小数后,小数点后第n位的数字是多少?做了那么多题,我已经不指望你能够帮上他了。。。
Input
多组测试数据,处理到文件结束。(测试数据<=100000组)每组测试例包含三个整数a,b,n,相邻两个数之间用单个空格隔开,其中0 <= a <1e9,0 < b < 1e9,1 <= n < 1e9。
Output
对于每组数据,输出a/b的第n位数,占一行。Sample Input
1 2 1 1 2 2
Sample Output
5 0
思路:
好题,加深理解快速幂。
可以想到需要进行(n-1)次的*10%b, 最后*10/b即是答案, 但暴力枚举肯定行不通的,需要用快速幂进行求解。
我们可以把(10%b)看做base,然后对它以(n-1)次传入快速幂即可。
Code:
#include <bits/stdc++.h> #define LL long long using namespace std; LL a, b, n, k; LL quickM(LL n) { LL ans = 1, base = 10%b; while(n) { if(n&1) ans = ans*base%b; base = base*base%b; n >>= 1; } return ans; } int main() { while(~scanf("%lld %lld %lld", &a, &b, &n)) { k = a%b*quickM(n-1)%b; printf("%lld\n", k*10/b); } return 0; }
继续加油~
相关文章推荐
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 K: qwb与小数 [快速幂]【思维】
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛—I(主席树)
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛—G
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 B: qwb与矩阵
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛—J(数状数组)
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛—K
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 C: 勤劳的ACgirls
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 Problem G: qwb去面试(数学问题)
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛(完结)
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛题解【solved 9 / 13】
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛—F
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛—B qwb与矩阵
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 D: qwb与神奇的序列 [矩阵]【数学】
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛题解(持续更新中)
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛—E
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛—A
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 E: qwb和李主席 [折半枚举二分]【思维?套路!】
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 Problem E: qwb和李主席(折半搜索+类二分枚举)
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 Problem E: qwb和李主席 (折半枚举!!!!n堆数分成最接近的两堆!!
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛—J