蓝桥杯2015年第六届真题-奇怪的数列C++

news2024/9/24 23:29:18

题目:

从X星截获一份电码,是一些数字,如下:

13

1113

3113

132113

1113122113

....

YY博士经彻夜研究,发现了规律:

第一行的数字随便是什么,以后每一行都是对上一行“读出来”

比如第2行,是对第1行的描述,意思是:1个1,1个3,所以是:1113

第3行,意思是:3个1,1个3,所以是:3113

请你编写一个程序,可以从初始数字开始,连续进行这样的变换。

输入:

第一行输入一个数字组成的串,不超过100位

第二行,一个数字n,表示需要你连续变换多少次,n不超过20

输出一个串,表示最后一次变换完的结果。

输出:

输出一个串,表示最后一次变换完的结果。

➢ eg:


这个算法的关键就是,每一行的数字都是一个字符,个体是作为字符存在的,☛代码如下:

#include<iostream> 
#include<string.h>
#include<string>
using namespace std;

int main() {
    char code[10000];
//    memset是初始化函数,作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。
//    sizeof() 是一个判断数据类型或者表达式长度的运算符
    memset(code, '\0', sizeof(code));   //初始化
    char codetmp[10000];
    memset(codetmp, '\0', sizeof(codetmp)); //初始化

    int index = 0;
    int n;
    cin >> code;
    int len = strlen(code);
    cin >> n;
    char start;
    int num = 0;
    while (n--) {     // 这个while循环针对code数组
        bool flag = 0; 
        start = code[0];    // 标记当前连续的那个字符

        index = 0;
        num = 0;
        len = strlen(code);

        for (int i = 0; i<len; i++) {
            if (code[i]==start)    // 如果 当前字符==当前连续字符
                num++;
            if (i == len-1)        // 如果已经是最后一个字符了
                flag = 1;
            if (code[i]!=start) {
//                先把个数num和字符start存起来 
                codetmp[index++] = num + '0';   // codetmp是字符数组,所以要加上'0'
                codetmp[index++] = start;
                //再把当前连续字符换成code[i] 
                start = code[i];
                num = 1;
            }
        }
//      如果已经是最后一个字符,因为我们还没有存num和start,得操作如下
        if (flag) { 
            codetmp[index++] = num + '0';
            codetmp[index++] = start;
        }

//        因为要保证while循环针对code数组,这里把codetmp数组复制到code数组 
        int t_len = strlen(codetmp);
        for (int i = 0; i<t_len; i++)
            code[i] = codetmp[i];
    }
    cout << code << endl;
    system("pause");
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/372375.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

hadoop网站流量日志数据统计

系统背景介绍 数据提供企业决策能力 网站日志的数据分析------》受欢迎程度如何评价你这个网站的受欢迎程度 用数据 下载的人多了 观看的人多了 通过Hadoop 对某个网站产生的日志数据流量进行统计分析 得出该网站的访问流量 继而做出决策我们可以采用flume收集nginx的success文…

AcWing算法提高课-2.1.1池塘计数

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 题目传送门点这里 题目描述 农夫约翰有一片 N∗M 的矩形土地。 最近&#xff0c;由于降雨的原因&#xff0c;部分土地被水淹没了。 现在用一个字符矩阵来表示他的土地。 每个单元格内&…

EasyRecovery16最新免费版电脑数据恢复软件功能介绍

EasyRecovery是一款支持Windows/Mac平台进行恢复图片的专业工具&#xff0c;尤其是各种流行单反相机RAW格式文件&#xff0c;以及超大型视频文件等&#xff0c;推荐摄影爱好者使用。适用于主流相机、无人机、PC、存储卡、USB 闪存驱动器等&#xff0c;由于删除、损坏或意外格式…

【项目精选】医院管理住院系统的研究与实现(源码+论文+视频)

点击下载源码 本系统主要分为六大模块&#xff0c;分别是医生管理模块、病人管理模块、病床管理模块、收费管理模块、统计分析模块和系统功能模块 &#xff0c;医生、病人和医院的管理人员都可以通过此系统寻找出自己所需要的信息。 1.1 背景 医院管理住院系统是当今大部分现代…

Nginx安装及介绍

前言&#xff1a;传统结构上(如下图所示)我们只会部署一台服务器用来跑服务&#xff0c;在并发量小&#xff0c;用户访问少的情况下基本够用但随着用户访问的越来越多&#xff0c;并发量慢慢增多了&#xff0c;这时候一台服务器已经不能满足我们了&#xff0c;需要我们增加服务…

华为OD机试用Python实现 -【天然蓄水库 or 天然蓄水池】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲天然蓄水库 or 天然蓄水池题目描述输入描述输出描述说明示例一输入输出说明示例二输入输出说明示例三输入输出说明Python 代码实现算法思路华为OD机试300题大纲 参加华为

Android 分区和内存监控

Andorid之所以是分区&#xff0c;是因为各自有对应的功能和用途的考量&#xff0c;可以进行单独读写和格式化。Android 设备包含两类分区&#xff1a;一类是启动分区&#xff0c;对启动过程至关重要。一类是用户分区&#xff0c;用于存储与启动无关的信息。启动分区boot 分区一…

HTML综合案例练习

一、展示简历内容 可以首先看一下我们的效果&#xff0c;之后再思考怎么实现 总的来说&#xff0c;这个练习不算难。 这里关于这个简历的代码编写我们不说太多&#xff0c;只注意以下几个内容即可&#xff1a; 注意及时查看我们的代码是否符合预期&#xff0c;即一段一段测 …

@ModelAttribute注释,接收用户不能做出修改的值,定义好值不变化

举例&#xff1a;有时候我们做修改的时候&#xff0c;比如用户的生日&#xff0c;和姓名用身份证验证之后就默认了你的资料&#xff0c;后期在修改个人资料的时候是不允许修改的&#xff0c;只能修改兴趣等等......1.设置实体类User&#xff0c;定义好属性&#xff0c;以及get,…

进程优先级(Linux)

目录 优先级VS权限 基本概念 查看系统进程 几个重要信息 PRI and NI PRI vs NI top命令 上限&#xff1a; 详细步骤 下限&#xff1a; 其他概念 优先级VS权限 权限&#xff1a;能or不能 优先级&#xff1a;已经能&#xff0c;但是谁先谁后的问题&#xff08;CPU资源有…

(十七)操作系统-进程同步、互斥

文章目录一、知识总览二、进程同步三、进程互斥1. 临界资源2. 互斥3. 对临界资源的互斥访问&#xff0c;在逻辑上分为四个部分4. 为了实现对临界资源的互斥访问&#xff0c;同时保证系统整体性能&#xff0c;需要遵循的原则五、总结一、知识总览 二、进程同步 同步亦称直接制约…

Kubernetes学习笔记-pod与集群节点的自动伸缩20230225

前言pod手动横向扩展&#xff1a;通过ReplicationController、ReplicaSet、Deployment等可伸缩资源的replicas字段&#xff0c;来手动实现pod中应用的横向扩展。pod纵向扩展&#xff1a;通过增加pod容器的资源请求和限制&#xff08;pod创建时&#xff09;pod自动横向扩展&…

Allegro如何快速把视图居中显示操作指导

Allegro如何快速把视图居中显示操作指导 用Allegro进行PCB设计的时候,为了方便检查和设计,时常需要将视图居中显示。一般地,会使用鼠标的中键进行放大和缩小,或者使用Zoom in和Zoom out来调整视图 Allegro还支持快速将视图居中 具体操作如下 点击View

Flume三种组件的选择对比

文章目录1.source2.channel3.sink1.source Source: 数据源:通过source组件可以指定让Flume读取哪里的数据&#xff0c;然后将数据传递给后面的 channel Flume内置支持读取很多种数据源&#xff0c;基于文件、基于目录、基于TCP\UDP端口、基于HTTP、Kafka的 等等、当然了&#x…

基于Windows下离线安装当前最新Arduino ESP32 SDK(2.0.7)固件开发包

基于Windows下离线安装当前最新Arduino ESP32 SDK&#xff08;2.0.7&#xff09;固件开发包✨写这篇的文章的初衷&#xff0c;是由于在前几天想通过离线一键安装包方式实现升级安装&#xff0c;结果发现解压后&#xff0c;可以找到开发板&#xff0c;但是无法上传代码&#xff…

JavaSe第3次笔记

1.String str "hello";字符串类型。 2.两个字符串类型相加意思是拼接&#xff0c;类似于c语言里面的strcat函数。 3.整型变成字符串类型: int a 10; String str String. valueOf(a); 4.当字符串和其他类型进行相加的时候&#xff0c;结果就是字符串。(不完全…

imporve-3

JSX语法糖本质 JSX是语法糖&#xff0c;通过babel转成React.createElement函数&#xff0c;在babel官网上可以在线把JSX转成React的JS语法 首先解析出来的话&#xff0c;就是一个createElement函数然后这个函数执行完后&#xff0c;会返回一个vnode通过vdom的patch或者是其他的…

Java基础--IO操作

一、IO原理及分类 一、IO原理 1、I/O是Input/Output的缩写&#xff0c;I/O技术是非常实用的技术&#xff0c;用于处理设备之间的数据传输&#xff0c;如读写文件&#xff0c;网络通信等。 2、java程序中对于数据的输入/输出操作一般都是以流的方式进行 3、java.io包下提供各…

【LeetCode】剑指 Offer(9)

目录 题目&#xff1a;剑指 Offer 25. 合并两个排序的链表 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 26. 树的子结构 - 力扣&#…

阿里测试经验7年,从功能测试到自动化测试,我整理的超全学习指南

做测试七年多&#xff0c;有不少人问过我下面问题&#xff1a; 现在的手工测试真的不行了吗&#xff1f; 测试工程师&#xff0c;三年多快四年的经验&#xff0c;入门自动化测试需要多久&#xff1f; 自学自动化测试到底需要学哪些东西&#xff1f; 不得不说&#xff0c;随着…