1 条题解

  • 0
    @ 2025-2-14 20:52:08

    C :

    #include<stdio.h> 
    #include<string.h> 
    #include<math.h> 
    int main() 
    {  
        int tran(char s[]);  
        char s[20];   
        int n;   
        gets(s);   
        n=tran(s);   
        printf("%d\n",n); 
    } 
    int tran(char s[]) 
    {  
        int i,n,re=0;  
        n=strlen(s);  
        for(i=0;i<n;i++)  
        {   
            if(s[n-1-i]>='0' && s[n-1-i]<='9')    
                re=re+(s[n-1-i]-'0')*pow(16,i);   
            if(s[n-1-i]>='a' && s[n-1-i]<='f')    
                re=re+(s[n-1-i]-'a'+10)*pow(16,i);    
            if(s[n-1-i]>='A' && s[n-1-i]<='F')     
                re=re+(s[n-1-i]-'a'+10)*pow(16,i);  
        }   
        return(re);  
    } 
    

    C++ :

    #include <cstdio>
    int main(void) {
        int d, sum=0;
        scanf("%x", &d);
        printf("%d\n", d);
        return 0;
    }
    

    Pascal :

    program e20150206;
    var
     s:string;
     i,len,cm,tmp:integer;
     sum:real;
    begin
     readln(s);
     len:= length(s);
     cm:=len-1;
     sum:=0;
     for i:=1 to len do
      begin
       tmp:=ord(s[i]);
       //writeln(tmp);
       case tmp of
        65,97: sum:=sum+10*exp(ln(16)*cm);
        66,98: sum:=sum+11*exp(ln(16)*cm);
        67,99: sum:=sum+12*exp(ln(16)*cm);
        70,100: sum:=sum+13*exp(ln(16)*cm);
        71,101: sum:=sum+14*exp(ln(16)*cm);
        72,102: sum:=sum+15*exp(ln(16)*cm);
        else
         sum:=sum+(tmp-48)*exp(ln(16)*cm);
        end;
        dec(cm);
       end;
      writeln(sum:0:0);
    end.
    
    • 1

    信息

    ID
    475
    时间
    1000ms
    内存
    2MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者