andre_joy

导航

hdu 2522

地址:http://acm.hdu.edu.cn/showproblem.php?pid=2522

题意:中文……

mark:真是2死了,wa了5次。开始是因为数组开小了,因为余数是在n*10的范围内的,所以数组要开10^6。后来是因为给a[]初始化的时候,n应该先转换成正数,结果一直wa。。。此题是模仿除法运算,每一步输出一个结果。

代码:

#include <stdio.h>

int a[1000010];

int main()
{
    int t,n,m;
    scanf("%d", &t);
    while(t-- && scanf("%d", &n))
    {
        if(n < 0) {printf("-"); n = -n;}
        for(m = 0; m <= n*10; m++)
            a[m] = 0;
        printf("0.");
        m = 10;
        while(1)
        {
            printf("%d", m/n);
            if(m%n == 0 || m%n == 1) break;
            m = (m%n)*10;
            if(a[m]) break;
            a[m]++;
        }
        printf("\n");
    }
    return 0;
}

posted on 2012-07-01 00:46  andre_joy  阅读(146)  评论(0编辑  收藏  举报