8 条题解

  • -1
    @ 2025-5-11 21:04:33

    孩子们,用无敌的公式代码杀穿进制转换吧!

    我只能说

    ps:即a进制转b进制,此题a=2,b=10

    #include<bits/stdc++.h>
    using namespace std;
    #define Maxn 1000005
    //#define int long long
    
    string x;
    int a,b,l=0,m=0;
    long long c;
    char ans[Maxn];
    
    signed main()
    {
    	a=2,b=10;
    	cin>>x;
    	for(int i=x.size()-1;i>=0;i--)
    	{
    		if(x[i]>='0'&&x[i]<='9')
    			c+=(x[i]-'0')*pow(a,m);
    		else
    			c+=(x[i]-'A'+10)*pow(a,m);
    		m++;
    	}
    	while(c)
    	{
    		if(c%b<10)
    			ans[l]=char(c%b+'0');
    		else
    			ans[l]=char((c%b)%10+'A');
    		l++;
    		c=(c-(c%b))/b;
    	}
    	for(int i=l-1;i>=0;i--)
    		cout<<ans[i];
    	return 0;
    }
    
    
    • @ 2025-5-17 17:32:05

      用 cin 不关闭输入输出流,跑太慢了。差评!!!

    • @ 2025-5-17 17:34:45

      还用的是标准库里的pow,时间复杂度 O(n)O(n) ,慢死了。不知道用快速幂吗?

信息

ID
974
时间
1000ms
内存
256MiB
难度
4
标签
(无)
递交数
280
已通过
123
上传者