2022第十三届届蓝桥杯c++B组题解

第一题2022转化成九进制。签到题,话不多说直接2*9^3+2*9+2=1478

第二题重在理解题意好吧。打开电脑日历或者自己手写可能的情况。答案为4

分别为(20220123 ,20221123,20221230,20221231);

第三题与去年日期跑步题有点相似,相信掌握了去年日期跑步题这道题也不难,

直接上代码好吧。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
  ll day=0;//今天是礼拜几
 ll cnt=0;//记录已刷题目
  ll a,b;n;
  ll s=0;//记录天数
 cin>>a>>b>>n;//a为周一到周五所写题目,b为周末所写题目,n为总题目。
while(cnt<n)
{
day=(day+1)%7;
if(day>=1&&day<=5)cnt+=a;
else cnt+=b;
s++;
}
cout<<s;
return 0;

}

第四题也不难,看出规律就行。经观察在第一颗或者最后一颗树=2*n-2;中间的树第i颗最高长为max((i-1)*2,(n-i)*2).题目结束,直接上代码。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll n;
ll a[100005];
cin>>n;
for(ll i;i<=n;i++)
{
  ll c=(i-1)*2;
 ll d=(n-i)*2;
if(i==1||i==n)a[i]=2*n-2;
else a[i]=max(c,d);
}
for(ll i=1;i<=n;i++)
{
cout<<a[i]<<endl;
}
return 0;

}

第五题下面为x进制问题,刚拿题也有点懵,不过既然是进制所以往进制方面想如321(3为8进制,2为10进制,1为2进制)本位是由上一位进制而来所以3这个位是有2(10进制)进位而2这个位是由1(2进制)所以可以猜想结果位3这个位上的数结果为3*10*2=60,2这个位上的数大小为2*2,1这个位上就是1,所以结果为60+4+1=65;符合答案。再可以根据下面的例子实验看出看出这个想法是正确的。即可以公式化第n为大小为n*(n-1)*(n-2)...*1其中n指n位上的数值.其他如n-1是指n-1为上的进制大小,同理n-2,n-3....1也同n-1.最后将每个位这样计算再相加就可以得出答案。

代码略。。。今天不想写了。。。

有时间加补其他的。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

VersionGod

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值