每日刷题(四十三)

蓝桥杯第九届C语言B组省赛习题

习题B:明码


这道题还是很值得细品的,很多人都会被题目太长给吓到,其实这个题考察的东西很少也很简单,就是考十进制转化为二进制外加结果的输出格式构造以及阅读理解能力

他首先说了一个字是16x16,相当于一个二维矩阵,正方形区域。由题意中字的布局可以知道一行字是2个字节,而一个字节是两位,相当于一行要有16位,由0和1组成。题目下方给出了十行的数据,那么一行就是一个汉字。然后直接把数据复制粘贴到终端,因为缓存区的存在,所以可以一次性出结果。当然你们也可以把数据全部存放在一个数组里,到时候一次性输出也是可以的。

这里还有一个要注意的,数据里有正数负数,对于有符号整数转化为二进制数大家在计算机硬件基础这门课应该都学过,这里我就简单说一下把负数转化为二进制数的方法。因为二进制是八位,所以只要求27-1+负数的二进制数。进制转化的思路如图
有关进制转化更多题型可以参看这篇博文蓝桥杯基础练习超全习题题解——BASIC-10~13题(十进制转十六进制、十六进制转十进制、十六进制转八进制、数列排序)

详细C代码如下:

#include<stdio.h>void tobinary(int n)
{int a[8] = {0};if(n >= 0){int k = n;int mod = k;int t = 1;a[8 - t] = mod;while(k){mod %= 2;k /= 2;a[8 - t] = mod;mod = k;t++;}for(k = 0; k < 8; k++){printf("%d", a[k]);}}else{int n1 = 128 + n;int k = n1;int mod = k;int t = 1;a[0] = 1;a[8 - t] = mod;while(k){mod %= 2;k /= 2;a[8 - t] = mod;mod = k;t++;}for(k = 0; k < 8; k++){printf("%d", a[k]);}}
} int main()
{int i, j;int a1, b1, c1, d1, e1, f1, g1, h1, i1, j1, k1, l1, m1, n1, o1, p1, q1, r1, s1, t1, u1, v1, w1, x1, y1, z1, aa, bb, cc, dd, ee, ff;for(i = 0; i < 10; i++){scanf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", &a1, &b1, &c1, &d1, &e1, &f1, &g1, &h1, &i1, &j1, &k1, &l1, &m1, &n1, &o1, &p1, &q1, &r1, &s1, &t1, &u1, &v1, &w1, &x1, &y1, &z1, &aa, &bb, &cc, &dd, &ee, &ff);tobinary(a1);tobinary(b1);printf("\n");tobinary(c1);tobinary(d1);printf("\n");tobinary(e1);tobinary(f1);printf("\n");tobinary(g1);tobinary(h1);printf("\n");tobinary(i1);tobinary(j1);printf("\n");tobinary(k1);tobinary(l1);printf("\n");tobinary(m1);    tobinary(n1);printf("\n");tobinary(o1);tobinary(p1);printf("\n");tobinary(q1);tobinary(r1);printf("\n");tobinary(s1);tobinary(t1);printf("\n");tobinary(u1);tobinary(v1);printf("\n");tobinary(w1);tobinary(x1);printf("\n");tobinary(y1);      tobinary(z1);printf("\n");tobinary(aa);tobinary(bb);printf("\n");tobinary(cc);tobinary(dd);printf("\n");tobinary(ee);tobinary(ff);printf("\n###############################\n");}return 0;
}

部分运行结果如下:

改良版:

#include<stdio.h>void tobinary(int n)
{char a[8] = {" "};if(n >= 0){int k = n;int mod = k;int t = 1;a[8 - t] = mod;while(k){mod %= 2;k /= 2;a[8 - t] = mod + 48;mod = k;t++;}for(k = 0; k < 8; k++){if(a[k] == 48)a[k] = 32;}for(k = 0; k < 8; k++){printf("%c", a[k]);}}else{int n1 = 128 + n;int k = n1;int mod = k;int t = 1;a[0] = 48;a[8 - t] = mod;while(k){mod %= 2;k /= 2;a[8 - t] = mod + 48;mod = k;t++;}for(k = 0; k < 8; k++){if(a[k] == 48)a[k] = 32;}for(k = 0; k < 8; k++){printf("%c", a[k]);}}
} int main()
{int i, j;int a1, b1, c1, d1, e1, f1, g1, h1, i1, j1, k1, l1, m1, n1, o1, p1, q1, r1, s1, t1, u1, v1, w1, x1, y1, z1, aa, bb, cc, dd, ee, ff;for(i = 0; i < 10; i++){scanf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", &a1, &b1, &c1, &d1, &e1, &f1, &g1, &h1, &i1, &j1, &k1, &l1, &m1, &n1, &o1, &p1, &q1, &r1, &s1, &t1, &u1, &v1, &w1, &x1, &y1, &z1, &aa, &bb, &cc, &dd, &ee, &ff);tobinary(a1);tobinary(b1);printf("\n");tobinary(c1);tobinary(d1);printf("\n");tobinary(e1);tobinary(f1);printf("\n");tobinary(g1);tobinary(h1);printf("\n");tobinary(i1);tobinary(j1);printf("\n");tobinary(k1);tobinary(l1);printf("\n");tobinary(m1);    tobinary(n1);printf("\n");tobinary(o1);tobinary(p1);printf("\n");tobinary(q1);tobinary(r1);printf("\n");tobinary(s1);tobinary(t1);printf("\n");tobinary(u1);tobinary(v1);printf("\n");tobinary(w1);tobinary(x1);printf("\n");tobinary(y1);      tobinary(z1);printf("\n");tobinary(aa);tobinary(bb);printf("\n");tobinary(cc);tobinary(dd);printf("\n");tobinary(ee);tobinary(ff);printf("\n###############################\n");}return 0;
}


所以说题目要我们求99
那么答案就是387420489

如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持,下期更精彩!!!

蓝桥杯2018第九届C语言B组省赛习题题解——习题B.明码(暴力破解密码)相关推荐

  1. 蓝桥杯——2018第九届C/C++真题[省赛][B组]

    目录 第几天 明码 乘积尾零 测试次数 快速排序 递增三元组 螺旋折线  日志统计 全球变暖 乘积最大 第几天 思路:这道题是蓝桥杯爱考的老题了,咱们可以通过电脑自带的计算器做也可以用excel做,最 ...

  2. 蓝桥杯大学组python试题_第十届蓝桥杯2019年C/C++ 大学A组省赛试题

    2019年蓝桥杯第十届软件类省赛 C/C++ 大 学 A 组 试题 A: 平方和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包括 1 ...

  3. 蓝桥杯2017年第八届C/C++ B组省赛习题题解

    目录 第一题:购物单(暴力计算) 第二题:等差素数数列(数学+暴力枚举) 第三题:承压计算(模拟) 第四题:方格分割(dfs) 第五题:取数位(模拟) 第六题:最大公共子串(dp) 第七题:日期问题( ...

  4. 蓝桥杯2014年第五届C/C++ B组省赛习题题解

    目录 第一题:啤酒和饮料(枚举) 第二题:切面条(数学) 第三题:李白打酒(dfs) 第四题:史丰收速算 第五题:打印图形 第六题:奇怪的分式(枚举) 第七题:六角填数 第八题:蚂蚁感冒(数学) 第九 ...

  5. 蓝桥杯2013年第四届C/C++ B组省赛习题题解

    目录 第一题:高斯日记(日期计算) 第二题:马虎的算式(全排列) 第三题:第39级台阶(dfs) 第四题:黄金连分数(递推+大数运算) 第五题:前缀判断(枚举) 第六题:三部排序 第七题:错误票据 第 ...

  6. 蓝桥杯 2018年预赛C语言大学B组 C/C++

    1.第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 直接利用EXCEL 里面的日期函数计算,注意需 ...

  7. 蓝桥杯真题系列:C语言A组奇妙的数字

    小明发现了一个奇妙的数字.它的平方和立方正好把0~9的10个数字每个用且只用了一次. 你能猜出这个数字是多少吗? 请填写该数字,不要填写任何多余的内容. 这个题题意比较简单,解决办法也是非常简单,暴力 ...

  8. 蓝桥杯2016第七届C语言B组省赛习题题解——习题B.生日蜡烛

    每日刷题(十一) 蓝桥杯第七届C语言B组省赛习题 习题B:生日蜡烛 我们可以立刻想到等差数列求和,那就是Sn = (n0 + n)* (n - n0 + 1)/ 2 Sn = 236,很明显这里有两个 ...

  9. 蓝桥杯2018年省赛真题超详解

    蓝桥杯2018年省赛真题超详解 第一题:第几天 第二题:方格计数 第三题:复数幂 第一题:第几天 1.2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需 ...

最新文章

  1. 《Adobe Photoshop CS5中文版经典教程(全彩版)》—第2课2.8节使用仿制图章工具修复特定区域...
  2. Solidworks输出Autocad的DWG格式乱码怎么办
  3. 华为云计算之储存基础知识
  4. 复制集配置文件linux,mongodb的复制集实现
  5. java的linux执行的shell
  6. C语言试题七十三之请编写函数求两个数的最大公约数
  7. Maven实战---两个war包的调用
  8. 项目管理系列之项目范围时间及资源管理(一)
  9. 写给软件工程师的 30 条建议
  10. python接口自动化21-下载excel文件(Content-Type:octets/stream)
  11. CVPR学习(四):CVPR2019-目标检测
  12. nacos动态配置数据源_Sentinel使用Nacos存储规则及同步
  13. C++ 入门2 ---- 类型转换
  14. 会场安排问题(贪心算法) Comparator类排序的学习
  15. 第13章 集成学习和随机森林 学习笔记上
  16. Java打印输出print和prinntln
  17. 京东27亿元收购北京翠宫饭店,徐雷、宋旸的回应很“云淡风轻”
  18. c语言香农编码文件压缩,谈谈熵编码无损压缩的原理
  19. MacOS-Homebrew
  20. swi-prolog安装及使用(基于)

热门文章

  1. 清亡之路(7):保路运动和武昌起义
  2. 用代入法求解递归式里的”微妙细节“【算法导论P49】
  3. 【五一创作】LoRaWAN简介
  4. 将项目中的阿里的fastjson版本升级到最新版本
  5. 嵌入式linux ecm,安勤推出最新高性价比3.5吋嵌入式单板计算机- ECM-BYT2及嵌入式模块计算机- ESM-BYT2-嵌入式系统-与非网...
  6. 输入框使用圆弧的造型html,css怎么把盒子边框变成圆弧
  7. 苹果手机的计算机删除了怎么恢复,苹果手机号码删除怎么恢复 有什么方法【图文】...
  8. ICO衰落与VC崛起:2019半年ICO融资总额不及去年单月
  9. 投资理财:穷人不能炒股票?
  10. OpenCV 口罩佩戴检测