这题用map来存储!把分子存到map中,然后当再次出现相同分子时就结束!
#include<cstdio>
#include<iostream>
#include<map>
using namespace std;
int main()
{
int i,n,k,m;
while(scanf("%d",&n)==1)
{
while(n--)
{
scanf("%d",&m);
map<int,int>mm;
k=1;
mm[k]=1;
printf(m>0?"0.":"-0.");
if(m<0)
m=-m;
for(i=1;;i++)
{
k=(k%m)*10;
if(k==0||mm[k]==1)
break;
mm[k]=1;
printf("%d",k/m);
}
printf("\n");
}
}
return 0;
}