![在这里插入图片描述](https://img-blog.csdnimg.cn/79daf3c3f8804e11beaf60f75e4d1e2c.png)
#include<iostream>
#include<cmath>
#include<vector>
#include<string>
using namespace std;
vector<string> dikaer(vector<string>v1,vector<string>v2)
{
vector<string>res;
for(int i=0;i<v1.size();i++)
for(int j=0;j<v2.size();j++)
res.push_back(v1[i]+v2[j]);
return res;
}
int main()
{
vector<string>v={"a","b","c"},res;
int n;
cout<<"请输入一个数字:"<<endl;
while(cin>>n)
{
res=v;
while(--n)
{
res=dikaer(res,v);
}
for(int i=0;i<res.size()-1;i++)
cout<<res[i]<<",";
cout<<res[res.size()-1]<<" "<<res.size()<<endl;
}
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/af143ceabfcb4b6c88737d8a624ba70f.png)
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string str1,str2;
cout<<"请输入两个字符串:"<<endl;
while(cin>>str1>>str2)
{
int max=0,num;
int dp[101][101]={0};
for(int i=0;i<=str1.length();i++)
for(int j=0;j<=str2.length();j++)
{
if(i==0||j==0)
{
dp[i][j]=0;
continue;
}
if(str1[i-1]==str2[j-1])
{
dp[i][j]=dp[i-1][j-1]+1;
if(dp[i][j]>max)
{
num=1;
max=dp[i][j];
}
else if(dp[i][j]==max)
num++;
}
}
cout<<max<<" "<<num<<endl;
}
return 0;
}