第一题:输出字符串即可
第二题2.猜灯谜【算法赛】 - 蓝桥云课 (lanqiao.cn):
猜灯谜
也就是输入自己前后值的总和,除去第一个和最后一个(单独输出)
c++代码如下:
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int arr[n];
int i;
for(i=0;i<n;i++){
cin>>arr[i];
}
cout<<arr[n-1]+arr[1]<<" ";
for(i=1;i<=n-2;i++){
cout<<arr[i-1]+arr[i+1]<<" ";
}
cout<<arr[n-2]+arr[0];
// 请在此输入您的代码
return 0;
}
第三题:数学七彩
3.数学奇才【算法赛】 - 蓝桥云课 (lanqiao.cn)
最佳情况,所有负数变整数
#include <iostream>
#include<cmath>
using namespace std;
typedef long long ll;
int main()
{
int n;
cin>>n;
ll arr[n],i,b[n],c[n];
ll sum=0;
for(i=0;i<n;i++){
cin>>arr[i];
arr[i]=abs(arr[i]);
sum+=arr[i];
}
cout<<sum;
// 请在此输入您的代码
return 0;
}
第四题:4.你不干?有的是帕鲁干!【算法赛】 - 蓝桥云课 (lanqiao.cn)
这道题其实就是一个数学问题,如图所示
设小的正奇数为a,另一个为a+2,(a+2+a)*2=4*(a+1)
所以最后的表达式为4*(a+1) , 如果这个数为连续正奇数平方之差 ,(0除外),则他一定是4的倍数,则这两个奇数为(x/4)-1,(x/4)+1
c++代码如下:
#include <iostream>
using namespace std;
int main()
{ int t;
cin>>t;
long long x;
while(t--){
cin>>x; //(a+b)*(a-b) 一定是偶数
if(x%8!=0 || x==0 ) cout<<"No"<<endl;
else{
cout<<"Yes"<<endl;
cout<<(x/4)-1<<" "<<(x/4)+1<<endl;
}
}
// 请在此输入您的代码
return 0;
}
第5题:等腰三角形
5.等腰三角形【算法赛】 - 蓝桥云课 (lanqiao.cn)
思路:
利用的是两边之和大于第三边,所以只需要 2*a[i]>b[i]就可以,当然题目要的是最多,先对拍个序,然后先从最小的开始,依次满足
c++代码如下:
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
int main()
{
int n;
int s=0;
cin>>n;
vector<ll> a(n),b(n);
for(int i=0;i<n;i++){
cin>>a[i];
}sort(a.begin(),a.end());
for(int i=0;i<n;i++){
cin>>b[i];
}sort(b.begin(),b.end());
int j=0;
for(int i=0;i<n;i++){
if(a[i]*2<=b[j]) continue;
s++;j++;
}
cout<<s<<endl;
return 0;
}