[白俊C+]1132少数


質問リンク
質問する
被除数Aと除数Bがあります.2つに分ける場合は、小数点以下のN番目の桁数を要求します.例えば、A=3、B=4、N=1の場合、A∞B=0.75のため、出力値は7となる.
入力
1行目のAおよびB(1≦A,B≦100000),N(1≦N≦100000)はスペースで囲まれている.
しゅつりょく
A∞Bの場合、小数点以下でN番目の数を出力します.
入力/出力例
// 예제 입력 1
25 7 5
// 예제 출력 1
2
アルゴリズム#アルゴリズム#
除算から素数ポイントまでの求め方は,残りの部分に10を乗じて除算を継続し,同時に1部を求める.
ex.25/7の場合
1.分は3で、残りは4なので3です.XXX
2.残りの4に10を乗じた40を7で割ると、それは5で、残りは5なので3.5 XX
3.残りの5に10を乗じた値50を7で割ると、それは7で、残りは1なので3.57 X
4.このように繰り返し得ることができる.
  • この方法を適用して小数点以下のN番目の位置を決定し、位置が正しい場合はシェアを出力し、位置が正しくない場合はシェアを増加し、残りの部分に10を乗じて除算する.
  • #include <iostream>
    
    using namespace std;
    
    int main(void) {
    
    	int A, B, N; 
    	int remain, cnt = 1;
    
    	cin >> A >> B >> N;
    
    	remain = A % B;
    
    	while (1) {
    		remain *= 10;
    		if (cnt == N) {
    			cout << remain / B;
    			break;
    		}
    		cnt++;
    		remain %= B;
    	}
    }