2022 蓝桥杯C语言B组

2022.4.9  记录我第一次参加蓝桥杯
填空

1.答案:1478

2.答案4
感觉012三个连续的应该不算


3. 7天做5a+2b道题,算n中有几个5a+2b,再算还需要几天
#include<iostream>
using namespace std;
int main(){
    long long a,b,n;
    cin>>a>>b>>n;
    int day=0;
    day+=(n/(5*a+2*b))*7;
    int d=n%(5*a+2*b);
    int d1=0;
    d1+=a;
    if(d1>=d){
        cout<<day+1;
        return 0;
    }
    d1+=a;
    if(d1>=d){
        cout<<day+2;
        return 0;
    }
    d1+=a;
    if(d1>=d){
        cout<<day+3;
        return 0;
    }
    d1+=a;
    if(d1>=d){
        cout<<day+4;
        return 0;
    }
    d1+=a;
    if(d1>=d){
        cout<<day+5;
        return 0;
    }
    d1+=b;
    if(d1>=d){
        cout<<day+6;
        return 0;
    }
    d1+=b;
    if(d1>=d){
      cout<<day+7;
      return 0; 
    } 
     
    
}

4.通过模拟,发现当修剪两个回合后就会重复,所以只要循环两个回合。注意当循环到最后一个和第一个注意变向.
#include<iostream>
#include<cstring>
using namespace std;
int n;
int h[10001];
int m[10001];
int flag;
int main(){
    cin>>n;
    memset(h,0,sizeof(h));
    memset(m,0,sizeof(m));
    int index=1;
    flag=0;
    for(int k=0;k<3*n;k++){
     for(int i=1;i<=n;i++){
        h[i]++;
        m[i]=max(h[i],m[i]);
     }
     h[index]=0;
     if(index==1){
         flag=0;
     }
     if(index==n){
         flag=1;
     }
     if(flag==0){
         index++;
     }
     else{
         index--;
     } 
    }
    for(int i=1;i<=n;i++){
        cout<<m[i]<<endl;
    }
    return 0;
    
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值