#include <iostream>#include<string>#include<algorithm>using namespace std;int main(){ int n=0; int sum=0; cin>>n; //有多少个空格 string rage(int res,string str); cout<<rage(n,"*")<<endl; for(int i=0;i<rage(n,"*").length();i++)//*号是拿来隔开字符串的 if(rage(n,"*")[i]=='*') sum++;//计算有多少种组合方式 cout<<"sum"<<sum;}string rage(int res,string str){ if(res!=0) return rage(res-1,str+"A")+rage(res-1,str+"B")+rage(res-1,str+"C"); else return str+"";}

上面这个代码的结果就是输出ABC在n个位置下面的排列组合的字符串。。。用*号或者别的什么东西隔开就可以求到有多少个排列组合。。。。。。
比如n=5