小数(快速幂)
昨天下午做这道题目时真是摆置了好半天!惜哉,WA了!
解析:
代码:
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll qmod(ll a,ll b,ll m) { ll ans=1; while(b) { if(b&1) ans=(ans*a)%m; // 板子要记熟! b>>=1; a=(a*a)%m; } return ans; //反复揣摩,深刻铭记! } int main() { int T; scanf("%d",&T); while(T--) { ll a,b,c; scanf("%lld%lld%lld",&a,&b,&c);//求取:a除b的第c位小数。 a=a*qmod(10,c-1,b)%b; printf("%lld\n",a*10/b); } return 0; }