1 条题解

  • 0
    @ 2025-8-24 21:32:15

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Laser_Crystal
    春眠不觉晓霜寒,处处闻啼鸟声残

    搬运于2025-08-24 21:32:15,当前版本为作者最后更新于2019-09-25 21:54:24,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    来一发用高精度做的

    其实方法和正常的十进制高精加一样,只不过把10换成了n

    中间还要特判484字符……

    29行代码走起(代码风格过丑):

    #include<bits/stdc++.h>
    using namespace std;
    int a[1005],b[1005],c[1005];
    char s1[1005],s2[1005];
    int main()
    {
    	int n;
    	cin>>n>>s1>>s2;
    	int l=strlen(s1);
    	for(int i=0;i<l;i++)
    	if(s1[i]>='a'&&s1[i]<='z') a[l-i]=s1[i]-87;
    		else a[l-i]=s1[i]-48;//输入特判×1
    	l=strlen(s2);
    	for(int i=0;i<l;i++)
    	if(s2[i]>='a'&&s2[i]<='z') b[l-i]=s2[i]-87;
    		else b[l-i]=s2[i]-48;//输入特判×2	
    	l=max(strlen(s1),strlen(s2));
    	for(int i=1;i<=l;i++)
    	{//高精加
    		c[i]+=a[i]+b[i];
    		c[i+1]=c[i]/n;
    		c[i]%=n;
    	}
    	if(c[l+1]) l++;
    	for(int i=l;i>0;i--)
    	if(c[i]>9) cout<<char(c[i]+87);//输出特判
    	else cout<<c[i];
    	return 0;
    }
    

    QwQ,其实没那么难的~各位886~

    • 1

    信息

    ID
    918
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者