如果x大于45,则输出-1
设定一个整数now,他的初始值为9;
当x>now,就x-now,并且now--;
根据解析写代码1:
#include <bits/stdc++.h>
using namespace std;
int a[101010];
int main(){
int x;
cin>>x;
int now=9;
if(x>45){
cout<<-1;
return 0;
}
int cnt=0;
while(x>now){
a[cnt++]=now;
x-=now;
now--;
}
if(x>0){
a[cnt++]=x;
}
for(int i=cnt-1;i>=0;i--){
cout<<a[i];
}
return 0;
}
那么是不是如果r/2+1>=l时,
输出:
r%(r/2+1)
否则:
输出:
r-l
根据解析写代码2:
#include <bits/stdc++.h>
using namespace std;
int main(){
long t;
cin>>t;
while(t--){
long long l,r;
cin>>l>>r;
if(r/2+1>=l){
cout<<r%(r/2+1)<<'\n';
} else{
cout<<r-l<<'\n';
}
}
return 0;
}
那么肯定是2人组合
如果是3人及以上的话是不行的
譬如:
4 3
6 2 7 4
1 2
2 3
3 4
如果1 2 3组合,那么就是2*7了,还是两个人去乘
根据解析写代码3:
#include <bits/stdc++.h>
using namespace std;
long long a[101010];
long long x;
long long y;
int main(){
long long n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
long long ans=0;
for(int i=1;i<=m;i++){
cin>>x>>y;
ans=max(ans,a[x]*a[y]);
}
cout<<ans;
return 0;
}
b[i]=a[i]-a[i+1]+a[i+2]-a[i+3]...-+a[n]
n=5;
b[1] b[2] b[3] b[4] b[5]
b[5]=a[5];
b[4]=a[4]-b[5];
b[3]=a[3]-b[4];
b[2]=a[2]-b[3];
b[1]=a[1]-b[2];
得出:b[i]=a[i]-b[i+1];
根据解析写代码4:
#include <bits/stdc++.h>
using namespace std;
long long a[1010101];
long long b[1010101];
int main(){
long long n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>b[i];
}
for(int i=1;i<n;i++){
a[i]=b[i]+b[i+1];
}
a[n]=b[n];
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}
根据解析写代码5:
#include <bits/stdc++.h>
using namespace std;
int main(){
long long n;
cin>>n;
long long cnt=0;
long long k=sqrt(2*n);
if(k*(k+1)/2>=n){
k--;
}
cout<<n-k*(k+1)/2;
return 0;
}