循环节
求A/B的精确值,精确到小数点后N位,在这N位内若是有限小数,则输出-1; 若出现是无限不循环小数,则输出0;若是循环小数, 则输出一个循环节。其中A、B是整数范围,N<=1000。
输入文件:只有一行,A,B,N,它们中间用空格隔开,
输出文件:只有一行,就是所求结果。
输入输出样例:
输入1:90 -45 100 输入2:355 113 19 输入3:77 119 100
输出1:-1 输出2:0 输出3:6470588235294117
#include<iostream>
using namespace std;
int a1[1008], a2[1008];
int main()
{
int a, b, n, i, k=-1;
cin>>a>>b>>n;
a = a % b;
for(i=0; i<n; i++)
{
a = a * 10;
if(!a)
{
cout<<-1;
return 0;
}
a1[i] = a / b;
a2[i] = a;
a = a % b;
}
for(i=1; i<n; i++)
{
if(a2[i] == a2[0])
{
k = i;
break;
}
}
if(-1 == k)
{
cout<<0;
}
else
{
for(i=0; i<k; i++)
cout<<a1[i];
}
return 0;
}