励志用少的代码做高效的表达。

注意点:

1、规律

2、非递归解法:string重载了+=运算符,因此用string会方便很多。并且string动态扩充,防浪费,更高效。
3、递归解法:官方的标签就是递归,也就是说递归是本题的最优解。
下面我把两种代码都贴上,根据喜好选择即可。

非递归代码:

#include<bits/stdc++.h>
using namespace std;
int main() {string s; s+="A";       int n, num = 0; cin >> n;while(++num != n) { string s1 = s; s += (char)(65+num); s += s1; } cout << s; return 0;
}

补充:快速理解递归的小技巧

说一下递归函数:
递归函数由两部分组成:边界条件和递归体。边界条件确保这个函数可以结束。递归体使函数源源不断的调用自己来进行操作。下面我们仔细剖析一下。
1、边界条件:if(n==1) 输出A。 没啥可说的,着重说递归体。
2、递归体:我们观察了A1-A4这几个公式后发现:公式以字符:(char)(65+n-1)为中心递归。也就是说:无论公式怎么变,(char)(65+n-1)这个字符一定在中间。一定输出一次。但在这个字符的左右两侧,输出的符号却因为n的增大而变多。 所以。我们可以这样认为:左边是一个递归公式,源源不断输出字符;中间是固定的一个字符,直接用printf输出;右边是一个和左边一样的递归公式,也是源源不断的输出字符。
这样:这道题的递归函数雏形就出现了: 递归公式;输出字符;递归公式。 那么,这个递归公式到底怎么写? 我们看A2。如果我们想写一个函数,既要满足“递归公式;输出字符;递归公式”这种构造,也要满足输出“ABA”,思路是不是一目了然了?
直接敲:digui(n-1); printf("%d",char(65-n+1)); digui(n-1); 一道题的核心代码就完成了。

总结:
1、根据A1,找到边界条件。
2、根据A1-A4找出规律,明白哪些是固定输出的,哪些需要用递归体表达
3、根据A2和第二条找到的规律,写出递归代码。

递归代码;

#include<cstdio>
void f(int a) {if(a == 0) printf("%c", 'A');else { f(a-1); printf("%c", a+'A'); f(a-1); }
}
int main() {int a; scanf("%d", &a);f(a-1); printf("\n");return 0;
}

日拱一卒,功不唐捐。

如何快速理解递归——蓝桥杯 试题 基础练习 FJ的字符串(递归与非递归解法)——10行代码AC相关推荐

  1. [蓝桥杯]试题 基础练习 FJ的字符串

    #include<iostream>using namespace std;int main() {int n;cin>>n;string res = "" ...

  2. [Java] 蓝桥杯BASIC-22 基础练习 FJ的字符串

    问题描述 FJ在沙盘上写了这样一些字符串: A1 = "A" A2 = "ABA" A3 = "ABACABA" A4 = "AB ...

  3. 蓝桥杯 BASIC-22 基础练习 FJ的字符串

    问题描述 FJ在沙盘上写了这样一些字符串: A1 = "A" A2 = "ABA" A3 = "ABACABA" A4 = "AB ...

  4. 蓝桥杯试题 基础练习 Sine之舞

    蓝桥杯试题 基础练习 Sine之舞 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功.所以他 ...

  5. Python 蓝桥杯试题 基础练习 特殊回文数

    Python 蓝桥杯试题 基础练习 特殊回文数 问题描述: 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于 ...

  6. Python 蓝桥杯试题 基础练习 数列排序

    Python 蓝桥杯试题 基础练习 数列排序 题目描述: 问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列.1<=n<=200 输入格式 第一行为一个整数n. 第二行包含n ...

  7. 蓝桥杯试题 基础练习 数列特征python

    蓝桥杯试题 基础练习 数列特征python 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给出n个数,找出这n个数的最大值,最小值,和. 输入格式 第一行为整数n,表示数的个数. ...

  8. 蓝桥杯试题 基础练习 十六进制转十进制

    蓝桥杯试题 基础练习 十六进制转十进制 C/C++实现 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. ...

  9. Python 蓝桥杯试题 基础练习 十六进制转八进制

    Python 蓝桥杯试题 基础练习 十六进制转八进制 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行, ...

最新文章

  1. 超全的设计模式简介(45种)
  2. golang输入命令行参数
  3. 【Go】Panic函数
  4. Jerry的Kubernetes学习笔记
  5. SQLSERVER中SP_WHO2和INPUTBUFFER的用法
  6. Sql 语句:显示 Sql Server 中所有表中的信息
  7. 书生中学计算机应用自费,浙江省台州市书生中学2016-2017学年高二上学期期中考试信息试题 Word版含答案.doc...
  8. 推荐几款好用的文本编辑器
  9. wps文件一点打印就关闭打印机服务器,WPS一打印就程序无响应怎么处理?
  10. div中border属性
  11. laravel8+jwt+邮箱注册验证
  12. [CTF从0到1学习] 一、CTF 概述
  13. 项目质量管理全部精华看这篇就够了
  14. vue [ECharts] Unkown series surface
  15. codevs 2627 村村通
  16. matlab 画三条曲线,如何利用MATLAB(plot 3函数和fplot3函数)绘制三维曲线?
  17. 台式计算机和便携式计算机是替代品吗,一种便携式计算机的制作方法
  18. SQL 01 按部门统计内部员工薪资排名--partition by--order by--dense_rank()
  19. 一行指令自动搭建AI绘画:stable-diffusion-webui_v1.3.2
  20. 大数据下的电商风控体系——李学庆

热门文章

  1. 第15讲:Selenium 爬取实战
  2. Docker常用操作命令(二)
  3. 你真的知道 NoSuchMethodError 发生原因和解决办法吗
  4. 设定游戏背景和英雄登场
  5. 【公开课预告】:白板与开源
  6. 【线上分享】互动协作白板与音视频实时同步技术实践
  7. Google Duo采用WaveNetEQ填补语音间隙
  8. Hulu兰华峰:专注平衡用户体验和成本
  9. ​SoundCloud的web播放库Maestro演进之路
  10. Google与Binomial合作开源Basis Universal GPU纹理编解码器