当前位置: 首页 > news >正文

ZT11 压缩二维码

描述

小欧的二维码转换服务上线了!只需要发送一个字符串,服务器就会把他转换成一个二维码发送给客户端。二维码是一个为 2n∗2n 的方格子,里面每个 1∗11∗1 的格子都有黑或者白两种颜色。然而,没过多久,小欧的服务器就崩溃了。经过检查,小欧发现,服务器会生成一张二维码的图片,发送给客户端,而传输图片的流量大小过大,导致服务器瘫痪。聪明的小欧知道只有黑白格的二维码可以用比特位 0 和 1 来编码,编码后的传输效率远远大于图片。

小欧发明了一种编码方式:用 2n∗2n 长度的二进制串来表示一个边长为 n 的二维码。他会逐行扫描该二维码,并且把扫描到的内容变成 0,10,1 比特流,其中 0 代表白色,1 代表黑色。

现在给你一张二维码图,请你把他转换成比特流。

输入描述:

第一行一个数 n (1≤n≤10) 。

接下来 2n 行,每行 2n 个字符,代表该二维码图形。其中 . 代表白色,# 代表黑色。

输出描述:

2n∗2n​/4 个整数,代表转换后的比特流。每个整数为4位比特位所组成的二进制数的值。

示例1

输入:

1
.#
#.

输出:

6

示例2

输入:

2
.##.
#..#
##..
...#

输出:

6 9 12 1

说明:

 
 

逐行扫描后,得到的01比特流为:0110100111000001。

将4个比特位合成为一个整数,得到 6(0110) 9(1001) 12(1100) 1(0001)。

示例3

输入:

3
#.##.#.#
#..#.##.
###.#.##
####.##.
##..#...
.##.#.#.
######.#
...##.#.

输出:

11 5 9 6 14 11 15 6 12 8 6 10 15 13 1 10
一、问题分析

首先读题,仔细看描述中的内容,发现需求是

1.简单来说是,给定一个整数n

2.有2的n次方乘2的n次方个'.'和'#'号,点代表0,井代表1,

2.将这些符号4个一组,组成十进制的整数输出

二、解题思路

1.首先读取n值

2.然后4个一组读取数据

3.将读取到的4个点和井转换成十进制数字输出

三、具体步骤

使用的语言是C

#include <stdio.h>
#include <math.h>
int main() {
    int n;
    scanf("%d", &n);
    if (n == 0) return 0;
    int row = pow(2, n);
    while (1) {
        int num = 0;
        char t1 = getchar();
        while (t1 == '\n') {
            t1 = getchar();
        }
        if(t1 == EOF) return 0;
        if(t1 == '#') num += 8;
        char t2 = getchar();
        while (t2 == '\n') {
            t2 = getchar();
        }
        if(t2 == '#') num += 4;
        char t3 = getchar();
        while (t3 == '\n') {
            t3 = getchar();
        }
        if(t3 == '#') num += 2;
        char t4 = getchar();
        while (t4 == '\n') {
            t4 = getchar();
        }
        if(t4 == '#') num += 1;
        printf("%d ",num);
    }

    return 0;
}

相关文章:

  • 【目标检测】目标检测中的数据增强终极指南:从原理到实战,用Python解锁模型性能提升密码(附YOLOv5实战代码)
  • Mac下VSCode调试skynet的lua环境配置
  • 【前端基础篇】Day 1
  • Postman操作(接口测试、生成测试报告、MockServer等)
  • 检查模型配置参数
  • 软件测试的基础入门(一)
  • 一文详解U盘启动UEFI/Legacy方式以及GPT/MBR关系
  • 11、集合框架
  • HOW - 个人创业(融资篇)
  • 如何安装vm 和centos
  • python目录
  • db.session.delete是什么意思
  • 10分钟熟练掌握宝兰德中间件部署 iServer
  • 【数据结构第十六节】实现链式结构二叉树(详细递归图解—呕心沥血版!)
  • 嵌入式科普(32)指向寄存器的指针变量2---可变指针
  • 世优科技国内首家 MR 体验店开业,打造 MAS 任意门奇幻之旅
  • 基于PSO-LSTM长短期记忆神经网络的多分类预测【MATLAB】
  • IO进程 day05
  • MobileNet 改进:添加SpatialGroupEnhance 增加语义特征学习能力
  • STM32-智能小车项目
  • 开发国外优惠卷网站如何做/推广平台app
  • 网站起域名原则/公司网站怎么优化
  • wordpress 插件 下载/潍坊关键词优化排名
  • 广告设计图片简单/天津搜索引擎seo
  • 沧州做网站/网络营销好找工作吗
  • 卡通网站建设/免费推广软件工具