参考:https://blog.csdn.net/qq_34202873/article/details/79784201

第一题

标题:第几天

2000年的1月1日,是那一年的第1天。

那么,2000年的5月4日,是那一年的第几天?

注意:需要提交的是一个整数,不要填写任何多余内容。

题解:

                       

所以5.4号是第124+1=125天。

扩展:Excel中DATADIF的使用方法

              

第二题

标题:明码

汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。

16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。

一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。

把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节, 
一共16行,布局是:

第1字节,第2字节
第3字节,第4字节
....
第31字节, 第32字节

这道题目是给你一段多个汉字组成的信息,每个汉字用32个字节表示,这里给出了字节作为有符号整数的值。

题目的要求隐藏在这些信息中。你的任务是复原这些汉字的字形,从中看出题目的要求,并根据要求填写答案。

这段信息是(一共10个汉字):

4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 
16 64 16 64 34 68 127 126 66 -124 67 4 66 4 66 -124 126 100 66 36 66 4 66 4 66 4 126 4 66 40 0 16 
4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 
0 -128 64 -128 48 -128 17 8 1 -4 2 8 8 80 16 64 32 64 -32 64 32 -96 32 -96 33 16 34 8 36 14 40 4 
4 0 3 0 1 0 0 4 -1 -2 4 0 4 16 7 -8 4 16 4 16 4 16 8 16 8 16 16 16 32 -96 64 64 
16 64 20 72 62 -4 73 32 5 16 1 0 63 -8 1 0 -1 -2 0 64 0 80 63 -8 8 64 4 64 1 64 0 -128 
0 16 63 -8 1 0 1 0 1 0 1 4 -1 -2 1 0 1 0 1 0 1 0 1 0 1 0 1 0 5 0 2 0 
2 0 2 0 7 -16 8 32 24 64 37 -128 2 -128 12 -128 113 -4 2 8 12 16 18 32 33 -64 1 0 14 0 112 0 
1 0 1 0 1 0 9 32 9 16 17 12 17 4 33 16 65 16 1 32 1 64 0 -128 1 0 2 0 12 0 112 0 
0 0 0 0 7 -16 24 24 48 12 56 12 0 56 0 -32 0 -64 0 -128 0 0 0 0 1 -128 3 -64 1 -128 0 0

注意:需要提交的是一个整数,不要填写任何多余内容。

题解(自写):

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int Kong = 0;void change2(char *a){int length = strlen(a);int cha = 0;if(length<8){cha = 8-length;for(int i = 0;i<cha;i++){printf(" ");}for(int i = 0 ; i<length ; i++){if(a[i]=='1')printf("#");if(a[i]=='0')printf(" ");}Kong++;if(Kong%2==0)printf("\n");}else{for(int i = length-8; i<length;i++){if(a[i]=='1')printf("#");if(a[i]=='0')printf(" ");}Kong++;if(Kong%2==0)printf("\n");}
}int main()
{char  a[100];char  b[100];int i,j;while(scanf("%d %d",&i,&j)!=EOF){itoa(i,a,2);itoa(j,b,2);change2(a);change2(b);}
}

另外一种方法:

#include <bits/stdc++.h>
using namespace std;
int main()
{int n,m;string str1,str2;while(cin>>n>>m){bitset<8> b(n);str1 = b.to_string();int len1 = str1.length();for(int i=0;i<len1;i++){if(str1[i] == '0')printf(" ");else printf("*");}bitset<8> c(m);str2 = c.to_string();int len2 = str2.length();for(int i=0;i<len2;i++){if(str2[i] == '0')printf(" ");else printf("*");}printf("\n");}return 0;
}

扩展:

     注意题目要求,一个字节存储8位二进制数,即一个数字要转换成8未的二进制

1.  #include<stdlib.h>中itoa()函数的用法:char *itoa( int value, char *string,int radix);
          原型说明:
          value:欲转换的数据。
          string:目标字符串的地址。
          radix:转换后的进制数,可以是10进制、16进制等。

2.  #include <bits/stdc++.h>包括在C++中的所有头文件,不过在OJ里面大部分不支持,这是一种
          偷懒的方法,但是会降低运行速度。

3.  itoa在使用时注意,只能转换成可能的二进制位数,但不能补位(比如说4转换成100但不能改变为00000100)

          并且在将负数转换成二进制时,都会转换成为16位的二进制码(补码)

     4.STL bitset总结,详情参照https://blog.csdn.net/hallmeow/article/details/76162536

第三题

标题:乘积尾零

如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?

5650 4542 3554 473 946 4114 3871 9073 90 4329 
2758 7949 6113 5659 5245 7432 3051 4434 6704 3594 
9937 1173 6866 3397 4759 7557 3070 2287 1453 9899 
1486 5722 3135 1170 4014 5510 5120 729 2880 9019 
2049 698 4582 4346 4427 646 9742 7340 1230 7683 
5693 7015 6887 7381 4172 4341 2909 2027 7355 5649 
6701 6645 1671 5978 2704 9926 295 3125 3878 6785 
2066 4247 4800 1578 6652 4616 1113 6205 3264 2915 
3966 5291 2904 1285 2193 1428 2265 8730 9436 7074 
689 5510 8243 6114 337 4096 8199 7313 3685 211

注意:需要提交的是一个整数,表示末尾零的个数。不要填写任何多余内容。

解题思路:

有两种方法

①直接将所有数相乘,然后每乘一个数就把后面0全部去掉记一下,不过中间会爆long long,这个好办,每次乘完只保留后4位非0数字,例如216037就只保留6037

②正解:所有的0都一定是2*5产生的,所以将每个数拆成一堆2乘上一堆5再乘上一个数,之后统计下有多少个2和多少个5取少的那个就是答案

代码

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{int n;int num1 = 0;int num2 = 0;while(cin>>n){while(1){if(n % 2 == 0){n /= 2;num1++;}else if(n % 5 == 0){n /= 5;num2++;}else {break;}}}printf("%d\n",num1>num2?num2:num1);return 0;
}

答案:31

2018第九届蓝桥杯C++省赛B组题目汇总相关推荐

  1. 2018第九届蓝桥杯大赛软件类B组C/C++省赛题解

    2018第九届蓝桥杯大赛软件类B组C/C++省赛目录 试题 A:第几天(结果填空) 试题 B:明码(结果填空) 试题 C:乘积尾0(结果填空) 试题 D:测试次数(结果填空) 试题 E:快速排序(结果 ...

  2. 2018第九届蓝桥杯个人赛省赛(软件类)C++A组试题第九题

    一[题目描述] 标题:倍数问题 [题目描述] 众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数.但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼.现在小葱给了你 n 个数,希 ...

  3. 2018第九届蓝桥杯-决赛-Java大学-C组

    标题:年龄问题 s夫人一向很神秘.这会儿有人问起她的年龄,她想了想说: "20年前,我丈夫的年龄刚好是我的2倍,而现在他的年龄刚好是我的1.5倍". 你能算出s夫人现在的年龄吗? ...

  4. 2018第九届蓝桥杯JavaB组省赛真题及详解

    2018第九届蓝桥杯JavaB组省赛真题及详解 第一题:第几天 第二题:方格计数 第三题:复数幂 第四题:测试次数 第五题:快速排序 第六题:递增三元组 第七题:螺旋折线 第八题:日志统计 第九题:全 ...

  5. 第九届蓝桥杯(省赛)C++C组真题题解

    文章目录 题目链接 C组真题(剩余题目同B组真题相同,已给出B组真题题目链接) 题目结构 第一题 哪天返回 第二题 猴子分香蕉 第五题 书号验证 第六题 稍小分数 第七题 次数差 第八题 等腰三角形 ...

  6. 【蓝桥杯】第九届蓝桥杯单片机国赛 代码程序

    第九届蓝桥杯单片机国赛 程序 题目 hex文件 代码 工程文件 B站视频 更多资料 题目 历届的省赛和国赛的题目我已经在前面的文章(点击查看)里给大家分享了(网盘资源),需要的话,直接去下载,我在这里 ...

  7. 第九届蓝桥杯真题解析JavaC组

    第九届蓝桥杯真题解析JavaC组 文章目录 ***第九届蓝桥杯真题解析JavaC组*** 前言 A.哪天回家 B.猴子分香蕉 C.字母阵列 D.第几个幸运数 E.书号验证 F.打印大X G.缩位求和 ...

  8. 使用JavaScript解答2018第九届蓝桥杯C/C++省赛A组试题

    大三时参加过第七届蓝桥杯个人赛及团队赛,转眼已经两年,最近看了看第九届蓝桥杯试题,打算用JavaScript实现一下. 题目1 标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + ...

  9. 2018第九届蓝桥杯省赛c/c++ A 组题解(填空部分)

    第九届蓝桥杯省赛c/c++ A 组题解(部分) 1 分数 等比数列求前n项和 2 星期一 解题思路: 3 乘积尾零 4 第几个幸运数 5 打印图形 第九届蓝桥杯省赛c/c++ A 组题解(部分) 1 ...

  10. 第九届蓝桥杯(省赛)美斯坦福共建专业学子捷报频传

    2018年4月1日起,第九届蓝桥杯全国软件和信息技术专业人才大赛(省赛)在各省市点燃战火,武汉美斯坦福信息技术有限公司合作院校共建专业的学子们捷报频传,46人斩获一等奖,获得重大历史性突破,再次刷新美 ...

最新文章

  1. Machine Learning:如何选择机器学习算法?
  2. 设计模式 — 创建型模式 — 建造者模式
  3. input blur获取不到当前值_解决 Laravel JWT 多表认证时获取不到当前认证用户的问题...
  4. M2: XAML Controls(2)
  5. 未转变者服务器床id,最新id欢迎补充
  6. redis和memcache的区别
  7. 06-Java 本地文件操作
  8. android浮动标题栏,GitHub - DARTTTTT/LBehavior: 跟随手势滑动,显示隐藏标题栏、底部导航栏及悬浮按钮的Android Behavior Library...
  9. Apriori算法+python实现
  10. 使用ffmpeg步骤
  11. JavaScript中数组高级编程实践
  12. UVA 10131 Is Bigger Smarter? (DP,最长条件子序列)
  13. AutoJs学习-实现日期农历时间显示
  14. 团购网站大缩水:5058家团购网站 只剩176家
  15. linux系统外接硬盘_电脑主硬盘linux系统,外接硬盘win7系统.如何启动外接硬盘的win7系统?...
  16. django实训报告
  17. matlab sisotool工具DEMO
  18. php公众号提现功能,公众号赞赏提现
  19. linux查看进程被kill原因,定位Linux下定位进程被谁KILL
  20. Beaglebone black 蚂蚁矿机L3+控制板 制作SD启动盘

热门文章

  1. js定义对象时属性名是否加引号问题
  2. Firefox downloadhelper 视频下载助手
  3. 正则表达式判断手机号码
  4. 车牌号识别php+sdk,车牌识别SDK
  5. 网络编程(1)—— 基于linux系统的socket服务器端编程步骤
  6. pdf在html中加载不出来,pdf嵌入html解决办法
  7. Visio实现箭头反向
  8. Oracle 临时表空间 SQL语句
  9. matlab光学应用实践,Matlab在光学信息处理仿真实验中的应用
  10. 解决CentOS7 安装后无法识别windows分区问题