/*
从这里充分体现了C++输入输出和C的输入输出
在数大的时候速度快很多。
*/
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<cstdlib>
using namespace std;
const int LEN=100010;
int main()
{
int k, n, T, vis[LEN], digit[LEN];
cin >> T;
while( T-- )
{
cin >> n;
if( n<0 )
{
cout << "-";
n = -n;
}
memset(vis, 0, sizeof(vis));
k=1;
int cnt=0;
vis[k]=true;
printf("0.");
//cout << "0.";
while( k )
{
k*=10;
digit[cnt++]=k/n;
k%=n;
if( vis[k] ) break;//只要出现了已经出现过的被除数,那肯定会循环的!
vis[k]=true;
}
for(int i=0; i<cnt; i++)
{
printf("%d", digit[i]);
//cout << digit[i];
}
printf("\n");
//cout << endl;
//cout << s << endl;
}
return 0;
}
输出1/n的小数位,是循环小数输出一个循环节
最新推荐文章于 2021-11-15 17:08:18 发布