文章
10
粉丝
99
获赞
5
访问
6.8k
#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;
}
登录后发布评论
int ans 存不了逆序后的十进制数
题目数据的要求:一个1000位(即10^999)以内的十进制数。
所以用int是不行的,这个数很大只能用字符数组来存储。