目 录
基础练习 FJ的字符串
一、非递归
思路:从问题描述给出的4个字符串来看规律。
n与字符个数的关系:字符个数=2^n-1
n与出现字母的关系:出现n个字母
A的出现位置规律:1,3,5,7... 即 i % 2 == 0
B的出现位置规律:2,2+4,2+4+4,2+4+4+4... 即 ( i - 2 ) % 4 == 0
C的出现位置规律:4,4+8,4+8+8... 即 ( i - 4 ) % 8 == 0
可推断D的出现位置规律:8,8+16,8+16+16,8+16+16+16... 即 ( i - 8 ) % 16 == 0
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int i,j;
for( i=1;i<pow(2,n);i++)
{
for(j=0;j<n;j++)
{
int a=i - pow(2,j);
int b=pow(2,j+1);
if(a % b ==0 )
{
char s=j+'A';
cout<<s;
}
}
}
return 0;
}
二、递归
代码
#include<stdio.h>
void f(int n)
{
if(n==1)
printf("A");
else
{
f(n-1);
printf("%c",'A'+n-1);
f(n-1);
}
}
int main()
{
int n;
scanf("%d",&n);
f(n);
return 0;
}