其他分享
首页 > 其他分享> > 10.3 训练

10.3 训练

作者:互联网

A - Seismic magnitude scales

题意:

地震震级每次加1,能量就会乘以32,给出A和B,求A是B震级的多少倍

思路:

求A,B的差值的32次方即可,pow的值最好还是用个值存储后再输出

代码:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    int a,b;
    cin>>a>>b;
    long long ans;
    ans=pow(32,abs(a-b));
    cout<<ans<<endl;
}

B - typo

题意:

给两个字符串S和T,你可以操作最多一次交换S中两个相邻字符的位置,若操作0次或1次后S和T相等输出Yes,否则输出No。

思路:

若S和T相等输出Yes,遍历寻找S中两个相邻位置和T不同的地方,当s[i]==t[i+1]&&s[i+1]=t[i]时。输出Yes,否则不可能使之相等输出No。(注意操作只能交换两个(adjacent)相邻字符)

代码:

#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<cstdlib>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    string a,b,c;
    cin>>a>>b;
    int la=a.size();
    if(a==b)
        cout<<"Yes"<<endl;
    else
    {
        int cnt=0,k=0;
        for(int i=0; i<la; i++)
        {
            if(a[i]!=b[i]&&a[i+1]!=b[i+1])
            {
                cnt+=1;
                k=i;
            }
        }
        if(cnt==1&&a[k]==b[k+1]&&a[k+1]==b[k])
            cout<<"Yes"<<endl;
        else
            cout<<"No"<<endl;
    }
}

标签:输出,10.3,题意,训练,int,32,Yes,include
来源: https://blog.csdn.net/m0_46596968/article/details/121000483