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