经典算法 小数点后的第n位
小数点后的第n位
问题描述
给你三个整数a
,b
,n
返回(a / b)的小数点后的第n
位,如果没有小数点后没有n
位,返回0
.
输入示例
1 8 3
输出示例
5
输入示例
1 8 4
输出示例
0
样例解释
1 / 8 = 0.125,小数点后第三位是5,第四位是0
c++代码
#include<bits/stdc++.h>using namespace std;typedef long long ll;ll a, b, n;ll mypow(ll a, ll b, ll c) {if (b == 0) return 1 % c;if (b == 1) return a % c;__int128_t d = mypow(a, b / 2, c);if (b % 2 == 0) return (d * d) % c;else return (d * d * a) % c;
}int main() {cin >> a >> b >> n;a %= b;cout << ((a % (10 * b)) * mypow(10, n, 10 * b) % (10 * b)) / b;return 0;
}//by wqs