对称字符串

C/C++:strlen(), 获取字符串长度。
java中 compareTo(字符串比较),char At(获取字符串的某个字符) indexOf(字串查找)
问题描述
蒜头君认为对称是一种美,他希望任何东西都是对称的,连字符串都是不放过。蒜头君在沙盘上写了这样一些字符串:
A1: A
A2:ABA
A3:ABACABA
A4:ABACABADABACABA

对于给定的N,你能根据规律输出A(N)吗?
输入格式
仅有一个数:N(N<=20)。
输出格式
所在字母组成的图形
样例输入1:2
样例输出1:ABA
样例输入2:3
样例输出2:ABACABA

#include <iostream>
#include <cstring>
using namespace std;
char ans[5000000];
int main(){
	int n;
	cin>>n;//假设n==2
	size_t len = 0;//计算字符串长度
	for (int i = 1; i <= n; ++i){//i=1时
		strcat(ans + len + 1, ans);//ans[]={'\0','\0'}
		ans[len] = 'A' + i - 1;//ans[0]='A',则ans[]={'A','\0'},构成字符串
		len = strlen(ans);
		//len==1
		//i=2时
		//ans[]={'A','\0','A','\0'}
		//ans[1]='B',则ans[]={'A','B','A','\0'}
		//len==3
		//........
	}
	cout<<ans;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值