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

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

第一题2022转化成九进制。


签到题,话不多说直接2*9^3+2*9+2=1478

第二题重在理解题意好吧。


打开电脑日历或者自己手写可能的情况。


答案为4

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

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

直接上代码好吧。


#include
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=1&&day<=5)cnt+=a; else cnt+=b; s++; } cout<

第四题也不难,看出规律就行。


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


#include
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<

第五题下面为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.最后将每个位这样计算再相加就可以得出答案。


代码略。






今天不想写了。






有时间加补其他的。






欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/579512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)