C++ 蓝桥杯之 FJ的字符串

试题 基础练习 FJ的字符串

  • 资源限制

       时间限制:1.0s   内存限制:512.0MB

  • 问题描述

  FJ在沙盘上写了这样一些字符串:
  A1 = “A”
  A2 = “ABA”
  A3 = “ABACABA”
  A4 = “ABACABADABACABA”
  … …
  你能找出其中的规律并写所有的数列AN吗?

  • 输入格式

  仅有一个数:N ≤ 26。

  • 输出格式

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

  • 样例输入

3

  • 样例输出

        ABACABA

  • 方法一:递归函数求解;

  • 思路:

看到这种有规律的字符串或者数字,首先我们想到的是用递归的方法求解;但要注意递归的方法不适用于递归数目很多的地方,对于此处N <= 26还是可以接受的。

  • 代码如下:

string FJ(int n,string res){
	if (n == 1)
		return "A";
	return FJ(n - 1, res) + res[n - 1] + FJ(n - 1, res);
}

int main(){
	
	int n;
	cin >> n;
	char res[MAX];
	for (int i = 0; i < n; i++)
		res[i] = char(i + 65);

	cout << FJ(n, res) << endl;
	return 0;
}

方法二:步步为营;

  • 代码如下:

int n;
	cin >> n;
	string res[MAX];
	for (int i = 0; i < n; i++)
		res[i] = char(i + 65);

	string s = "A";
	for (int i = 1; i < n; i++){
		s += s;
		s.insert(s.length()/2,res[i]);
	}
	cout << s << endl;

	return 0;

 

最近有在做蓝桥杯的试题,感觉还不错,希望和大家一起交流交流学习心得。

代码仅供参考,可能不是很规范,望不弃!

坚持每天发一篇!加油!!!

发布了2 篇原创文章 · 获赞 3 · 访问量 64

猜你喜欢

转载自blog.csdn.net/qq_44830822/article/details/104919292