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;
}