A题
大的减小的就是公差,再加上大数就行了
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
const int Mod=1e9+7;
typedef long long ll;
typedef unsigned long long ull;
int main(){
int a,b;
cin>>a>>b;
cout<<max(a,b)+max(a,b)-min(a,b)<<endl;
}
B题
创建一个3位数的列表,输入之后排序。
排完序按着题目要求写条件就行了。
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
const int Mod=1e9+7;
typedef long long ll;
typedef unsigned long long ull;
int main(){
vector<int> li(3);
for(int i=0;i<3;i++) {
cin>>li[i];
}
sort(li.begin(),li.end());
if (li[0]==li[1] and li[1]==li[2])printf("Yes");
else if (li[0]+1==li[1] and li[1]+1==li[2])printf("Yes");
else printf("No");
}
C题
用一个布尔值表示是否满足条件,因为要把它写进进行递归的函数,所以用一个指针指向它。
是第几层就把列表开多大,再用一个数表示还剩几层需要判断,如果还要判断的层数不是0就递归
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
const int Mod=1e9+7;
typedef long long ll;
typedef unsigned long long ull;
void IS(vector<int> & vec,int n,bool * is) {
int len=vec.size()+1;
vector<int> ls(len);
for(int i=0;i<len;i++) {
cin>>ls[i];
}
for(int i=0;i<vec.size();i++) {
if(vec[i]>ls[i] || vec[i]>ls[i+1]) {
*is=false;
}
}
if (n)IS(ls,n-1,is);
}
int main(){
int T;
cin>>T;
while(T--) {
int n;
cin>>n;
vector<int> vec(1);
cin>>vec[0];
bool is=true;
bool * p=& is;
n--;
IS(vec,n-1,p);
if(is)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}