文章

2

粉丝

21

获赞

0

访问

919

头像
十进制和二进制 超时了该怎么处理?
P1176 清华大学上机题
发布于2024年7月23日 00:31
阅读数 500

代码如下所示:

#include <bits/stdc++.h>
using namespace std;
void f(int n){
    char out[1010];//存字符
    int cnt=0;//下标
    while(n>0){
    int w=n%2;
    if(w<10) out[cnt++]=w+'0';
    else out[cnt++]=(w-10)+'A';
    n/=2;
    }
    char in[1010];
    int j=0;
    for(int i=cnt-1;i>=0;i++)
    {
     in[j++]=out[i];
    }
    int ans=0;
    int len=strlen(in);
    for(int i=0;i<len;i++)
    {
        ans=ans*2;
        if(in[i]>='0'&&in[i]<='9') ans+=in[i]-'0';
        else ans+=in[i]-'A'+10;
    }
    printf("%d\n",ans);
}
int main() {
    int a;
    while (scanf("%d",&a)!=E...

登录查看完整内容


登录后发布评论

1 条评论
snake VIP
2024年7月23日 10:18

注意审题,题目输入的数可能有1000位,所以不能用int来存储

赞(0)