文章

17

粉丝

0

获赞

119

访问

4.6k

头像
进制转换2 题解:
P1259 北京大学机试题
发布于2025年2月26日 20:15
阅读数 530

#include<bits/stdc++.h>
using namespace std;

int main(){
    char s[100];
    //scanf("%s", &s);
    while(cin>>s){
        int n;
        int ans=0;
        for(int i = 0; i<strlen(s);i++){
            if(s[i]>='A'&&s[i]<='F') n = (s[i]-'A')+10;
            if(s[i]>='0'&&s[i]<='9')n = (s[i]-'0');
            ans = ans*16 + n;
        }
        cout<<ans<<endl;
    }
    return 0;
}
 

注意:

1、输入的是char数组

2、持续输入 需要使用while(cin>>..)

3、持续出答案需要换行

4、求字符串长度:strlen(s)

登录查看完整内容


登录后发布评论

1 条评论
15256734482
2025年3月1日 23:37

#include<bits/stdc++.h>
using namespace std;
int main(){
    char a[100];
    while(scanf("%s",a)!=EOF){

        int len=strlen(a);
        int c,sum;

        if(a[len-1]>='A' && a[len-1]<='F')
            sum=a[len-1]-'A'+10;
        else sum=a[len-1]-'0';
        for(int i=len-2;i>=2;i--)
        {
        if(a[i]>='A' && a[i]<='F')
            c=a[i]-'A'+10;
        else c=a[i]-'0';
        sum=sum+c*16;
        }
       printf("%d\n",sum);
       sum=0;

    }


return 0;
}
大佬这样为啥只有百分之25的正确率

赞(0)