文章

10

粉丝

99

获赞

5

访问

6.8k

头像
十进制和二进制 题解:这为什吗不对呀
P1176 清华大学上机题
发布于2024年3月2日 19:39
阅读数 905

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

int main(){
    char s[105];
    int n;
    int cnt=0,ans  = 0;
    scanf("%d",&n);
    while(n>0){
        int w = (n%2);
        if(w<10) s[cnt++]=w+'0';
        else       s[cnt++]=w+'A'-10;
        n=n/2;
    }
    for(int i = 0;i<cnt;i++){
        ans = ans*2;
        if(s[i]>='0'&&s[i]<='9') ans=ans+s[i]-'0';
        else ans=ans+s[i]-10+'A';
    }
    
    printf("%d",ans);
    return 0;
}

登录查看完整内容


登录后发布评论

3 条评论
damowanghwj
2024年3月12日 10:42

int ans 存不了逆序后的十进制数 

赞(0)
snake VIP
2024年3月2日 19:49

题目数据的要求:一个1000位(即10^999)以内的十进制数。

所以用int是不行的,这个数很大只能用字符数组来存储。

赞(0)

阿离 : 回复 snake: 多谢

2024年3月3日 09:21