FZU 2102 Solve equation (进制转换)

来源:互联网 发布:大数据分析模型代码 编辑:程序博客网 时间:2024/05/29 18:04

题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=111307#problem/A

代码:

#include<stdio.h>#include<string.h>#include<math.h>using namespace std;int main(){    int t;    scanf("%d",&t);    while(t--)    {        char a[50];        char b[50];        int c;        scanf("%s",a);        scanf("%s",b);        scanf("%d",&c);        __int64 ans1=0,ans2=0;        int j=1;        for(int i=strlen(a)-1;i>=0;i--)        {            if(a[i]>='0'&&a[i]<='9')                ans1=ans1+(a[i]-'0')*j;            else            {                if(a[i]=='a')                    ans1=ans1+10*j;                if(a[i]=='b')                    ans1=ans1+11*j;                if(a[i]=='c')                    ans1=ans1+12*j;                if(a[i]=='d')                    ans1=ans1+13*j;                if(a[i]=='e')                    ans1=ans1+14*j;                if(a[i]=='f')                    ans1=ans1+15*j;            }            j=j*c;        }        //printf("%I64d\n",ans1);        j=1;        for(int i=strlen(b)-1;i>=0;i--)        {            if(b[i]>='0'&&b[i]<='9')                ans2=ans2+(b[i]-'0')*j;            else            {                if(b[i]=='a')                    ans2=ans2+10*j;                if(b[i]=='b')                    ans2=ans2+11*j;                if(b[i]=='c')                    ans2=ans2+12*j;                if(b[i]=='d')                    ans2=ans2+13*j;                if(b[i]=='e')                    ans2=ans2+14*j;                if(b[i]=='f')                    ans2=ans2+15*j;            }            j=j*c;        }        //printf("%I64d\n",ans2);        //printf("%d\n",)        printf("(%I64d,%I64d)\n",ans1/ans2,ans1-ans1/ans2*ans2);    }}


0 0
原创粉丝点击