杭电2522

Problem Description
Zty很痴迷数学问题.。一天,yifenfei出了个数学题想难倒他,让他回答1 / n。但Zty却回答不了_. 请大家编程帮助他.

Input
第一行整数T,表示测试组数。后面T行,每行一个整数 n (1<=|n|<=10^5).

Output
输出1/n. (是循环小数的,只输出第一个循环节).

Sample Input
4
2
3
7
168

Sample Output
0.5
0.3
0.142857
0.005952380

Author
yifenfei

#include <stdio.h>
#include<string.h>//memset()函数头文件
int main()
{
    int t,n,y,fdex,f[100000],hash[100000];
    scanf("%d",&t);
    while(t--){
        scanf("%d",&n);
        if(n<0){
            printf("-");
            n*=-1;
        }//处理负数
        if(n==1){
            printf("1");
            continue;
        }
        fdex=0;
        y=1;
        memset(hash,0,sizeof(hash));//初始化数组,免用for循环
        hash[1]=1; //余数存在过的设为1
        while(y){
            y*=10;
            f[fdex++]=y/n;
            y%=n;
            if(hash[y]){
                break;
            }else{
             hash[y]=1;
            }
        }
        printf("0.");
        for(int i=0;i<fdex;i++){
            printf("%d",f[i]);
        }
        printf("\n");
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容