N分之一 竖式除法模拟

来源:互联网 发布:淘宝店铺如何上传宝贝 编辑:程序博客网 时间:2024/04/30 01:45

N分之一

Description


Alice越来越痴迷于数学问题了。一天,爸爸出了个数学题想难倒她,让她求1 / n。

可怜的Alice只有一岁零九个月,回答不上来 ~~~~(>_<)~~~~  于是她求你编个程序帮她算出来。

Input

第一行是一个整数T,表示测试组数。接下来T行,每行一个整数 n ( 1 ≤ |n| ≤ 105 )。

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[100000];    int t;    scanf("%d", &t);    while(t--)    {        scanf("%d", &n);        if(n == 1)        {            printf("1\n");            continue;        }        else if(n == -1)        {            printf("-1\n");            continue;        }        memset(vis,0,sizeof(vis));        if(n < 0)        {            n = -n;            printf("-");        }            printf("0.");        int x,k =1;        int ans[10000];        int cnt = 0;        vis[k] = 1;        while(k)        {            k *= 10;            ans[cnt++] = k/n;            k %= n;            //printf("---------%d\n",k);            if(vis[k])            {                break;            }            vis[k] = true;        }        for(int i = 0; i < cnt; i++)            printf("%d", ans[i]);        printf("\n");        //printf("%d\n",k);    }}


 

0 0
原创粉丝点击