Wednesday, February 9, 2011

382 - Perfection


#include<stdio.h>
#include<string.h>
#include<math.h>

int GCD(int a,int b);

int main()
{
    char num[20],ch;
    int i,j,k,den,div,pwr[]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000},c=1,j,k,a,b;
    //freopen("in.txt","r",stdin);
    while(scanf("%d%c",&j,&ch)&&(j^-1))
    {
        gets(num);

        jk=strlen(num)-2;
        a=b=0,k=jk-j;

        for(i=2;num[i];i++)
            a=a*10+num[i]-48;

        if(j)
        {
            for(i=1;i<=k;i++)
                b=b*10+num[i+1]-48;
            div=pwr[jk]-pwr[k];
            den=a-b;
        }
        else
        {
            div=pwr[jk];
            den=a;
        }

        k=GCD(den,div);
        div=div/k,den=den/k;

        printf("Case %d: %d/%d\n",c++,den,div);
    }
    return 0;
}
int GCD(int a,int b)
{
    int c;
    while(a)
    {
        c=a;
        a=b%a;
        b=c;
    }
    return c;
}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.