HDU2522(分数化小数,简单的模拟)

来源:互联网 发布:office2010激活软件 编辑:程序博客网 时间:2024/05/17 13:06

比较简单的直接模拟,只要重复出现相同的数,那么就一定找出循环来了。就像UVA202那样直接模拟找重复就好了。
code:

#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int num[100010];void div(int n){    int l=1;    num[1]=1;    while(l)    {        l*=10;        printf("%d",l/n);        l%=n;        if(num[l])            break;        num[l] = 1;    }}int main(){    int kase;    int n;    scanf("%d",&kase);    while(kase--)    {        memset(num,0,sizeof(num));        scanf("%d",&n);        if(n<0)        {            printf("-");            n=-n;        }        if(n==1)        {            printf("1\n");            continue;        }        printf("0.");        div(n);        printf("\n");    }    return 0;}
原创粉丝点击