N分之一
Description
Alice越来越痴迷于数学问题了。一天,爸爸出了个数学题想难倒她,让她求1 / n。
可怜的Alice只有一岁零九个月,回答不上来 ~~~~(>_<)~~~~ 于是她求你编个程序帮她算出来。
Input
第一行是一个整数T,表示测试组数。接下来T行,每行一个整数 n ( 1 ≤ |n| ≤ 10 )。
Output
以实数形式输出1/n 。如果是无限循环小数的,只需输出第一个循环节。
Sample Input
4
2
3
7
168
Sample Output
0.5
0.3
0.142857
0.005952380
注意一点 如果被除数在之前出现过的话 那么接下来出现的就是循环节
#include<bits/stdc++.h>
int main()
{
int n;
bool vis[];
int t;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
if(n == )
{
printf("1\n");
continue;
}
else if(n == -)
{
printf("-1\n");
continue;
} memset(vis,,sizeof(vis));
if(n < )
{ n = -n;
printf("-");
} printf("0."); int x,k =;
int ans[];
int cnt = ;
vis[k] = ;
while(k)
{
k *= ;
ans[cnt++] = k/n;
k %= n;
//printf("---------%d\n",k);
if(vis[k])
{
break;
}
vis[k] = true;
}
for(int i = ; i < cnt; i++)
printf("%d", ans[i]);
printf("\n");
//printf("%d\n",k); }
}