• ZOJ Problem Set


    一道简单题,简单的20进制加减法,我这里代码写的不够优美,还是可以有所改进,不过简单题懒得改了。。。

    #include <stdio.h>
    #include <string.h>
    
    int invert(char c)
    {
        if(c<97)
            return c-48;
        else
            return c-87;
    }
    
    char reinvert(int a)
    {
        if(a<10)
            return a+48;
        else
            return a+87;
    }
    
    char add(char a1,char a2,int *c)
    {
        int t1,t2,sum;
        t1=invert(a1);
        t2=invert(a2);
        sum=t1+t2+*c;
        if(sum<20)
        {
            *c=0;
        }
        else
        {
            sum-=20;
            *c=1;
        }
        return reinvert(sum);
    }
    
    void inversion(char *a)
    {
        int len=strlen(a);
        for(int i=0,j=len-1;i<=j;i++,j--)
        {
            char c=a[i];
            a[i]=a[j];
            a[j]=c;
        }
    }
    
    int main()
    {
        char a1[120],a2[120];
        while(scanf("%s%s",a1,a2)!=EOF)
        {
            inversion(a1);
            inversion(a2);
            int len1=strlen(a1),len2=strlen(a2),i;
            int c=0;
            for(i=0;i<len1&&i<len2;i++)
                a1[i]=add(a1[i],a2[i],&c);
            
            if(len1>len2)
            {
                for(;i<len1;i++)
                    a1[i]=add(a1[i],'0',&c);
                if(c!=0)
                    a1[i++]='1';
                a1[i]='';
                len1=strlen(a1);
            }
            else if(len1==len2)
            {
                if(c!=0)
                {    a1[i]='1';
                    len1++;
                }
            }
            else
            {
                for(;i<len2;i++)
                    a1[i]=add(a2[i],'0',&c);
                if(c!=0)
                    a1[i++]='1';
                a1[i]='';
                len1=strlen(a1);
            }
    
            for(i=len1-1;i>=0;i--)
                printf("%c",a1[i]);
            printf("
    ");
        }
    
        return 0;
    }
  • 相关阅读:
    Oracle 函数
    ecplise 修改编码
    mysql json 使用 类型 查询 函数
    java 子类强转父类 父类强转子类
    java UUID
    Java Number & Math 类
    java String类
    apache StringUtils 工具类
    apache ArrayUtils 工具类
    java Properties
  • 原文地址:https://www.cnblogs.com/xlturing/p/3324533.html
Copyright © 2020-2023  润新知