PersonalCorpus 版 (精华区)

1044161 Big Guava ... 493 Accepted 0:00.360
392 2002/08/27 05:16:41.927

int gcd(int a, int b)
{
    if (b==0) return a; else return gcd(b,a%b);
}

void main()
{

    int i,j,k,x,y,n;
    bool ok;
    while (scanf("%d\n",&n)==1) {
        if (n==0) { printf("1 / 1\n"); continue; }
        if (n==1) { printf("0 / 1\n"); continue; }
        if (n==2) { printf("-1 / 1\n"); continue; }

        x=y=1; ok=true; n-=1;
        while (n>0) {
            if (ok) {
                if (x==y) { ok=false; continue; }
                x++;
                if (x==0) continue;
                if (gcd(abs(x),y)==1) { n--; continue; }
            } else {
                if (x==-y) { ok=true; x=-x-1; y=1-y; continue; }
                y--;
                if (y==0) continue;
                if (gcd(x,abs(y))==1) { n--; continue; }
            }
        }
        if (x>0) printf("%d / %d\n",y,x); else printf("%d / %d\n",-y,
-x);
    }
}
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:1.891毫秒