循环小数化分数

自己写了个代码,不知道对不对

输入格式 2.33333 1

1表示小数点后1位到小数结束为循环节

 

#include
using namespace std;
typedef long long ll;
ll Pow(ll a, ll b){
    ll s = 1;
    while (b > 0)
    {
        if (b % 2 == 1)
            s = s * a;
        a = a * a;
        b = b >> 1;
    }
    return s;
}
char a[100];
int main()
{
    ll x,p;
    scanf("%lld%s%lld",&x,a,&p);

    ll d=Pow(10,strlen(a)-p)-1;

    d=d*Pow(10,p-1);

    ll c = 0;
    for(ll i=p;i

 

你可能感兴趣的:(杂谈(好吧,单纯就是个杂谈))