HDU 2522 A simple problem

A simple problem

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1946    Accepted Submission(s): 665


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
 

 

Source
 

 

Recommend
gaojie
 
//很好的一道hash应用题目、hash记录余数是否重复出现过
#include <stdio.h>

#include <stdlib.h>

int hash[100000]; int main() { int t,n,i,re;

    scanf("%d",&t); while(t--) {

        scanf("%d",&n); if(n<0) {

             printf("-");

             n=-n; } if(n==1)

           printf("1"); else {

                 printf("0.");

                 re=1;

                 memset(hash,0,sizeof(hash));

                 hash[re]=1; while(re) {

                  re*=10;

                  printf("%d",re/n); if(hash[re%n]) break; else

                     hash[re%n]=1;

                  re=re%n; } }

             printf("\n"); } return 0; }

你可能感兴趣的:(simple)