2 条题解

  • 0
    @ 2022-11-5 18:00:12

    代码写的有亿点乱,见谅

    默契程度:

    输入两个名字然后拼接到一起,需要考虑拼接的顺序。然后对于每一个字母对应的有一个数值(实际上就是该字母的ASCII码-'a'),类似杨辉三角的相加并且对10取模,最终输出最大的一个默契程度值。

    上代码

    #include<bits/stdc++.h>
    using namespace std;
    string a,c,d;
    int x[2010],maxx;
    void mq(int leng)  //leng记录当前实际上剩下了几个元素需要处理 
    {
    	if(leng==1) return;
    //如果当前的‘倒杨辉三角 ’已经加和剩下了一个元素就结束 
    	for(int i=1;i<=leng;i++)
    		x[i]=(x[i]+x[i+1])%10;
    //否则对于每一位新的数值都等于上一个状态的i、i+1两个值想加 
    	mq(leng-1);  //调用下一层 
    	return;
    }
    void bj()
    {
    	for(int i=0;i<a.size();i++)
    		x[i+1]=(a[i]-'a')%10;  //转换字符为数值,注意取模 
    	mq(a.size());  //计算默契值 
    }
    int main()
    {
    	cin>>c>>d;  //输入 
    	a=c+d;  //c、d这样拼接 
    	bj();  //转换成数字、计算默契值 
    	maxx=max(maxx,x[1]);  //记录最大的默契值 
    	a=d+c;  //d、c这样拼接 
    	bj();
    	maxx=max(maxx,x[1]);  //同上 
    	cout<<maxx;
        return 0;
    }
    
    

    信息

    ID
    1126
    时间
    1000ms
    内存
    256MiB
    难度
    3
    标签
    递交数
    31
    已通过
    20
    上传者