精华内容
下载资源
问答
  • 2019-03-21 20:38:54

    汉字的字形存在于字库中,即便在今天,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

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

    最终答案是81
    思路:用记事本替换功能讲数据修改为用逗号分隔,然后直接复制进代码直接输出二进制格式。
    代码如下:

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	int a[320] = {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};
    	for(int i = 0;i<sizeof(a) / sizeof(a[0]);i++){
    		if(i%2==0){
    			cout<<bitset<sizeof(a[i])*2>(a[i]);
    		}
    		else{
    			cout<<bitset<sizeof(a[i])*2>(a[i])<<endl;
    		}
    	}
    	return 0;
    }
    

    使用bitset<sizeof(a[i])*2>(a[i])的时候需要头文件< bitset >吼。由于我这里引用了万用头文件所以不需要再次引用。

    新人第一次发博客。。。小紧张~~~大佬勿喷。。。

    更多相关内容
  • 文章目录一、题目二、思路描述三、代码 一、题目 二、思路描述 总方法:直接模拟,遇到字母直接输出,遇到数字循环输出数字的前一个字符即可。 步骤:先用字符串输出一长串,之后将字符串转化为字符数组,然后遍历...

    一、题目

    在这里插入图片描述

    二、思路描述

    总方法:直接模拟,遇到字母直接输出,遇到数字循环输出数字的前一个字符即可。
    步骤:先用字符串输出一长串,之后将字符串转化为字符数组,然后遍历字符数组进行数字和字母判断即可求解

    三、代码

    import java.util.*;
    public class Main{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            //遇到数字就循环遍历输出,遇到字母就直接输出
            String s   = sc.nextLine();
            char[] str = s.toCharArray();
            for(int i  =0;i<str.length;i++){
            if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')){
                    System.out.print(str[i]);
                }else{
                    int t = str[i] - '0';
                    for(int j=0;j<t-1;j++){
                        System.out.print(str[i-1]);
                    }
                }
            }
        }
    }
    
    展开全文
  • 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 汉字的字形存在于字库中,即便在今天,16 点阵的字库也仍然使用广泛。 16 点阵的字库把每个汉字看成是 16×16 个像素信息。...

    题目描述

    本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
    汉字的字形存在于字库中,即便在今天,16 点阵的字库也仍然使用广泛。
    16 点阵的字库把每个汉字看成是 16×16 个像素信息。并把这些信息记录在字节中。
    一个字节可以存储 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 
    

    运行限制

    最大运行时间:1s
    最大运行内存: 128M

    代码

    #include<stdio.h>
    #include<iostream>
    #include<math.h>
    #include<string>	
    using namespace std;
    int arr[110];
    void Change(int x)//将十进制转化为二进制
    {
    	int i, j, k;
    	k = abs(x);
    	i = 0;
    	while (k != 0)
    	{
    		arr[i] = k % 2;
    		k /= 2;
    		i++;
    	}
    	if (x < 0)//判断是否是正数
    	{
    		for (i = 0; i < 7; i++)
    		{
    			if (arr[i])arr[i] = 0;
    			else arr[i] = 1;
    		}
    		int y = 0;
    		while (arr[y])
    		{
    			arr[y] = 0;
    			y++;
    		}
    		arr[y] = 1;
    	}
    }
    int main()
    {
    	int a[32];
    	int i, j, k;
    	for (k = 0; k < 9; k++)
    	{
    		for (i = 0; i < 32; i++)
    		{
    			cin >> a[i];
    			Change(a[i]);
    			for (j = 7; j >= 0; j--)
    			{
    				if (arr[j] == 1)cout << arr[j];
    				else cout << " ";
    			}
    			memset(arr, 0, sizeof(arr));
    			if (i % 2 == 1)cout << endl;
    		}
    	}
    	return 0;
    }
    

    最后代码结果表达的意思是:九的九次方等于多少,
    也就是最后的结果是9*9=387420489。

    思路

    本题就是将每个数字转化为二进制,也就是对应的八位的二进制数字,之后在输出的时候如果某位数字为0则输出空格,如果为1就正常输出1。并且在输出的时候每行输出两个数据对应的二进制数字。
    负数补码的计算方法:
    第一种
    1.先求出负数绝对值的二进制。
    2.除了第一位符号不变,其他各位取反(此时求出来的是反码),最后+1就是补码
    第二种
    1.先求出负数绝对值的二进制
    2.从最后一位向前直到遇到第一个1,该位置之前的数取反。

    代码中给出的是第一种计算方法
    接下来给出第二种计算方法,仅需修改Change方法即可

    #include<stdio.h>
    #include<iostream>
    #include<math.h>
    #include<string>	
    using namespace std;
    int arr[110];
    void Change(int x)
    {
    	int i, j, k;
    	k = abs(x);
    	i = 0;
    	while (k != 0)
    	{
    		arr[i] = k % 2;
    		k /= 2;
    		i++;
    	}
    	if (x < 0)
    	{
    		for (i = 0; i <= 7; i++)
    		{
    			if (arr[i] == 1 && i < 7)
    			{
    				for (j = i + 1; j <= 7; j++)
    				{
    					if (arr[j] == 0)
    						arr[j] = 1;
    					else
    						arr[j] = 0;
    				}
    				break;
    			}
    		}
    	}
    }
    int main()
    {
    	int a[32];
    	int i, j, k;
    	for (k = 0; k < 9; k++)
    	{
    		for (i = 0; i < 32; i++)
    		{
    			cin >> a[i];
    			Change(a[i]);
    			for (j = 7; j >= 0; j--)
    			{
    				if (arr[j] == 1)cout << arr[j];
    				else cout << " ";
    			}
    			memset(arr, 0, sizeof(arr));
    			if (i % 2 == 1)cout << endl;
    		}
    	}
    	return 0;
    }
    
    展开全文
  • 蓝桥杯 真题明码 一题掌握3种码

    多人点赞 热门讨论 2022-02-12 20:11:36
    距离蓝桥杯56天 学习算法的目的是为了提升自己 感谢某站对三种码的讲解 传送门原码 反码 补码_哔哩哔哩_bilibili 题目链接 问题分析:很多小伙伴一定和小郑一样 对 题干说明的:给出字节作为有符号整数的值 ...

    距离蓝桥杯56天 

    学习算法的目的是为了提升自己 

    感谢某站对三种码的讲解 传送门原码 反码 补码_哔哩哔哩_bilibili

     题目链接

     问题分析:很多小伙伴一定和小郑一样 对 题干说明的:给出字节作为有符号整数的值 不理解在一开始的时候 为什么会有负数?对于和小郑一样的小白来说,一个字节八位,表示的数据范围[00000000,11111111]即[0,255] 哪儿来的负数? 

     其实 上面的这种认识是基于无符号数据,实际上,数值数据还有一种叫做有符号数据

    有符号数据有三种表示法:原码,反码,补码

    只要了解了原码 后面两种码迎刃而解

    8位原码 最高位0表示正号,1表示负号 后七位的范围是[0,127]

    所以8位原码的范围[-127,127] 所以确定一个数字的原码分两步:1:正负号决定最高位 2:数字的绝对值决定后七位

    懂了原码 反码就好理解了:反码基于原码,除了最高位(符号位),其余取反

    懂了反码 补码就好理解了:补码基于反码 在反码的基础上+1

    而这三种码,补码最重要 因为在计算机系统中,数值一律用补码来表示和存储。

    所以下面着重研究算补码的办法(本题也基于补码)

    先研究负数:

    举个例子:求-1的补码 那么我们已知-1的原码为10000001

    那么-1的反码为11111110 那么-1的补码为11111111

    就这么简单。然后对于负数[-127,-1]都可以按照上述类似求-1的方法计算

    然后对于-128,我们规定它的补码是10000000

    再研究正数:

    正数的补码=正数的反码=正数的原码    综上8位补码的表示范围[-128,127]

    所以,了解了三种码以后(最重要的是补码),回归题目,现在对字节作为有符号整数的值的概念是不是清晰了?实际上就是让我们求每个整数的补码 

    每行汉字有32个字节构成,16*16的像素:一行2个字节,一个字节8位,组成16行

    因此把它打印出来即可:所以问题在问九的九次方是多少?

    s="""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"""
    a=s.split('\n')
    
    dict={}
    
    def reverse(str):
        ans=''
        for i in str:
            ans+='0' if int(i)==1 else '1'
        return ans
    
    for j in range(-128,128):
        if j>=0:
            dict[j]=(8-len(bin(j)[2:]))*'0'+bin(j)[2:]
        elif j==-128:
            dict[j]='10000000'
        else:
            tmp=reverse((7-len(bin(abs(j))[2:]))*'0'+bin(abs(j))[2:])#除了符号位取反
            tmp_add=bin(int(tmp,2)+1)[2:]#+1
            dict[j]='1'+(7-len(tmp_add))*'0'+tmp_add
        
    for i in a:
        tmp=list(map(int,i.split()))
        start=0#end=31
        while start<=30:
            s=dict[tmp[start]]+dict[tmp[start+1]]
            print(s)
            start+=2
        print('\n')
        
    

    由于长度过长,就放一张‘九的’好了,具体可自行运行代码

                             ​​​​​​​        ​​​​​​​我是小郑 正在奔赴热爱 奔赴山海 

    展开全文
  • 2018年第九届蓝桥杯javaB组真题。2018年第九届蓝桥杯javaB组真题
  • 直到快比赛才重视起之前学校给报了蓝桥杯,且这段时间一直在做Python,所以没做什么准备。 赛场上做这道题时连反码补码的知识点都记混,所以直接用了excel做这道题目,分享下做题思路、及题解。 标题:明码 ...
  • 蓝桥杯真题_明码

    2019-03-17 17:52:14
    汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。 16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。 一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。...
  • 蓝桥杯真题2018B-明码

    2020-10-15 00:41:53
    标题:明码 汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。 16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。 一个字节可以存储8位信息,用32个字节就可以存一个汉字...
  • 思路:输入=左边整数+右边分数(分母/分子),【1-9】的数字只出现一次 0不能出现 用左边整数决定右边分数(枚举左边整数) 枚举生成右边分数的分母排列组合 得出分母对应的分子 (左边整数+分子分母)形成字符串 再...
  • 2018年第九届蓝桥杯真题C/C++B组

    千次阅读 2018-04-01 22:36:06
    2018年第九届蓝桥杯真题C/C++B组1、标题:第几天2000年的1月1日,是那一年的第1天。那么,2000年的5月4日,是那一年的第几天?注意:需要提交的是一个整数,不要填写任何多余内容。2、标题:明码汉字的字形存在于...
  • 蓝桥杯真题训练6

    2022-02-14 12:59:27
    蓝桥杯真题训练 1-特别数的和 小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 请问,在 1 到 nn 中,所有这样...
  • 2018第九届蓝桥杯C++省赛B组[最新题解汇总] 标题:明码   汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。 16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。 一个...
  • 问题分析:这个问题有两种方法,第一种是建造一个全局变量的二维数组x[16][16],通过循环调用函数(将一个十进制数变为二进制然后放入数组中),然后通过循环,判断每一位是否为1,是则输出“*”。...
  • //明码 void toBinaryStr(int i,string &ans){ if(i >= 0){ ans[0] = '-'; for(int j = 0; j ;++j){ if(((i>>j)&1)==1)//二进制上位1 { ans[8-j-1] = '1'; } } }else{ ans[0]='1'; for(int j = 0; j;++j){ if(((...
  • 2018年蓝桥杯B组真题详解第一题:第几天代码第二题:明码代码 第一次写题解 第一题:第几天 2000年的1月1日,是那一年的第1天。 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写...
  • 上文链接:k倍区间 前缀和+选排列【蓝桥杯真题】(c++) 题目描述: 汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。...
  • 标题:明码 汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。###16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。 ###一个字节可以存储8位信息,用32个字节就可以...
  • 2018蓝桥杯明码

    2021-03-26 10:37:46
    2018-第九届蓝桥杯大赛个人赛省赛 软件类真题 C大学B组 第二题 明码 答案:‭387420489‬ 题目如下: 汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。 16点阵的字库把每个汉字看成是16x16个像素...
  • (未完待续)虽然没参加,但尝试一下写几题,不能保证正确性,但我觉得挺对的QAQ。...31+29+31+30+4=125第二题:明码 这题意看的我眼花缭乱,答案9^9.第三题:乘积尾零 直接java大整数搞一下,然后数数,或者...
  • 明码 题目描述: 汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。 16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。 一个字节可以存储8位信息,用32个字节就可以存一个...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 129
精华内容 51
关键字:

蓝桥杯真题明码