B - Position in Fraction 巧妙,模拟除法找小数位

模拟除法
思路:模拟除法即可,脑子要会拐弯,不要太莽。QAQ
a/b%10不断找出余数再*10/b 直到找到c.
所以不用开double,直接int即可。
图解 1 8 5
在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int a,b;
    int c;
    cin >> a >> b >> c;
    int i = 0;
    while(i < 1e5 + 5)///模拟除法
    {
        i++;
        a *= 10;///zhuan'hua'wei
        if(a / b == c){cout << i << endl;return 0;}
        a = a % b;///
    }
    cout << -1 << endl;
    return 0;
}

发布了241 篇原创文章 · 获赞 8 · 访问量 4944

猜你喜欢

转载自blog.csdn.net/weixin_43960370/article/details/103169358