美文网首页
蓝桥杯试题——FJ的字符串

蓝桥杯试题——FJ的字符串

作者: 旋哥 | 来源:发表于2020-12-15 00:17 被阅读0次

title: 蓝桥杯试题——FJ的字符串
date: 2019年2月17日20:33:05
tags:

  • 蓝桥杯试题
  • 算法
    categories: 蓝桥杯试题
    mathjax: true

FJ的字符串

问题描述

FJ在沙盘上写了这样一些字符串:

A1 = “A”

A2 = “ABA”

A3 = “ABACABA”

A4 = “ABACABADABACABA”

… …

你能找出其中的规律并写所有的数列AN吗?

输入格式

仅有一个数:N ≤ 26。

输出格式

请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。

样例输入

3

样例输出

ABACABA

思路

解法1 使用匹配所有下标的形式,找出所有相同字母下标的出现规律,仔细观察:

A -> 2n_1 - 2 = 2^1 - (2^0 *n_1+ 1)

B -> 4n_2 - 3 = 2^2 - (2^1 *n_2 + 1)

C -> 8n_3- 5 = 2^3 - (2^2 *n_3+ 1)

D -> 16n_4 - 9 = 2^4 - (2^3 *n_4+ 1)

又因为:

n_1 = 8 = 2^3

n_2 = 4 = 2^2

n_3 = 2 = 2^1

n_4 = 1 = 2^0

所以我们只需要外层循环控制ABCD的个数,里层循环控制n的个数,就很容易得出代码。

注意点:这里使用指针字符来作为存储字符的方式,能够满足题目要求的字母个数小于26,如果要使用字符数组的话,作为局部变量可以实现数组的动态分配,但是n大于20时会导致数组内存溢出,因为局部变量的内存限制为2M,或者把字符数组当做全局变量来处理,只要初始化分配足够大的也可以处理。

#include<stdio.h>
#include<stdlib.h>

int main(){
    long i,j;
    int n;
    scanf("%d",&n);
    char *a;
    a = (char*)malloc(sizeof(char)*(int)(pow(2,n))-1);
    for(i=0;i<n;i++){
        for(j=0;j<(int)(pow(2,i));j++){
            a[(int)(pow(2,n-i)) * (j+1)- (int)(pow(2,n-i-1)) - 1] = 'A' + n -i - 1;
        }
    } 
    
    for(i=0;i<(int)(pow(2,n))-1;i++){
        printf("%c",a[i]);
    }
    return 0;
} 

思路

利用递归的方式

#include<stdio.h>
void fun(int i) {
    if (i==0) printf("");
    else {
        fun(i-1);
        printf("%c",'A'+i-1);
        fun(i-1);
    }
}

int main() {
    int n;
    scanf("%d",&n);
    fun(n);
    return 0;
}
image.png

相关文章

  • 蓝桥杯试题——FJ的字符串

    title: 蓝桥杯试题——FJ的字符串date: 2019年2月17日20:33:05tags: 蓝桥杯试题 算...

  • [蓝桥杯]FJ的字符串

    问题 1461: [蓝桥杯][基础练习VIP]FJ的字符串 题目描述 FJ在沙盘上写了这样一些字符串: A1 = ...

  • 【蓝桥杯python】小白的艰难刷题之路。A+B问题

    先给大家献上蓝桥杯的练习系统,因为我是新手刷题人所以先更新一下基础练习的普通试题集。“蓝桥杯”练习系统 (lanq...

  • [蓝桥杯]字符串编辑

    问题 1621: [蓝桥杯][算法训练VIP]字符串编辑 题目描述 从键盘输入一个字符串(长度< =40个字符),...

  • [蓝桥杯]字符串对比

    问题 1466: [蓝桥杯][基础练习VIP]字符串对比 题目描述 给定两个仅由大写字母或小写字母组成的字符串(长...

  • 蓝桥杯 历届试题 幸运数

    问题描述幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成首先从1开始写出自然数1,2,3,4,5...

  • 蓝桥杯 历届试题 分糖果

    问题描述有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都把自己的糖果分一...

  • 蓝桥杯练习系统历届试题

    PREV-1 核桃数量思路a,b,c 的最小公倍数利用gcd算法

  • 蓝桥杯 历届试题 回文数字

    问题描述观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数...

  • 蓝桥杯 历届试题 数字游戏

    问题描述栋栋正在和同学们玩一个数字游戏。游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈。栋栋首先说出数字1。...

网友评论

      本文标题:蓝桥杯试题——FJ的字符串

      本文链接:https://www.haomeiwen.com/subject/xzdneqtx.html