#循环小数
题目
描述
输入整数a和b(0<=a<=3000,1<=b<=3000),输出a/b的循环小数表示以及循环节长度。
样例输入
5 43
样例输出
5/43 = 0.116279069767441860465
#include<stdio.h>
int main()
{
int a,b,y1,y2;
scanf("%d%d",&a,&b);
int s1[100]={0},s2[100]={0};
int i=0,t=0,c=1,j,k=0;
if(a>=b)
a=a%b;
y1=a/b;
y2=a%b;
while(1)
{
int flag=0;
s1[k++]=y1;
s2[i++]=y2;
if(y2==0)
break;
for(j=0;j<i-1;j++)
{
if(y2==s2[j])
{
flag=1;
break;
}
}
if(flag==1)
break;
y2=y2*10;
y2=y2%b;
y1=y2/b;
}
printf("%d/%d=%d.",a,b,s1[0]);
for(j=1;j<i;j++)
{
printf("%d",s1[j]);
if(i>50)
{
printf("...");
break;
}
}
return 0 ;
}