Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- using ii = pair<int , int>;
- using iii = pair<int , ii>;
- using vi = vector< int >;
- using vii = vector< ii >;
- using ll = long long;
- using vl = vector< ll >;
- using pll = pair<ll , ll>;
- using vll = vector< pll >;
- using plll= pair<ll , pll>;
- #define FastIO cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);
- #define LSOne(a) ( (a) & -(a) )
- #define INF ll(4e18)
- #define OO int(1e9)
- #define EPS 1e-9
- #define PB push_back
- #define S second
- #define F first
- const int N = 2e5 + 5e1;
- const ll MOD = 1e9 + 7;
- char buff[N];
- ll _pow(ll n ,ll p)
- {
- ll x = 1;
- while( p > 0 )
- {
- if( p & 1 ) x = (x * n);
- n = (n * n);
- p >>= 1;
- }
- return x;
- }
- int main()
- {
- ll a ,b ,k;
- scanf("%lld%lld%lld" ,&a ,&b ,&k);
- auto bits = [&](ll x) -> ll {
- ll cnt = 0;
- while( x ) x /= 10 ,cnt ++;
- return cnt;
- };
- if( a == b )
- {
- printf("1.");
- while( k-- ) printf("0");
- return 0;
- }
- printf("0.");
- a *= 10;
- vl ans;
- while( k )
- {
- ll n = bits(a);
- bool flag = false;
- for(ll i = n - 1 ; i >= 0 ; i--)
- {
- ll a1 = a / _pow(10ll ,i);
- if( a1 >= b )
- {
- flag = true;
- ll c = a1 / b;
- ll d = c * b;
- k -= 1;
- ans.PB(c);
- a -= d;
- break;
- }
- }
- if( !flag )
- {
- a *= 10;
- if( a < b )
- {
- k -= 1;
- ans.PB(0);
- }
- }
- }
- int m = (int)ans.size();
- while( (int)ans.size() != m + 1 )
- {
- ll n = bits(a);
- bool flag = false;
- for(ll i = n - 1 ; i >= 0 ; i--)
- {
- ll a1 = a / _pow(10ll ,i);
- if( a1 >= b )
- {
- flag = true;
- ll c = a1 / b;
- ll d = c * b;
- k -= 1;
- ans.PB(c);
- a -= d;
- break;
- }
- }
- if( !flag )
- {
- a *= 10;
- if( a < b )
- {
- k -= 1;
- ans.PB(0);
- }
- }
- }
- if( ans.back() >= 5 )
- {
- for(int i = (int)ans.size() - 2 ; i >= 0 ; i--)
- {
- if( ans[i] == 9 ){
- ans[i] = 0;
- } else {
- ans[i] += 1;
- break;
- }
- }
- }
- for(int i = 0 ; i < (int)ans.size() - 1 ; i++){
- printf("%lld" ,ans[i]);
- }
- puts("");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement