蓝桥云课-第6场小白赛

文章详细解析了四道C++编程算法赛题目,涉及猜灯谜(计算子数组和)、将负数变为整数、连续正奇数平方之差、帕鲁干问题以及等腰三角形判断,展示了如何用C++解决这些数学问题。
摘要由CSDN通过智能技术生成

第一题:输出字符串即可

第二题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;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值