关注
#include<iostream>
#include<vector>
using namespace std;
//string s;
void f(int x,int y,int k,vector<vector<int>> a,string s);
int main()
{
int x=10;
int y=12;
vector<vector<int>> a(y+1,vector<int>(x+1,0));
for(int i=0;i<=y;i++)
a[i][0]=1;
for(int i=0;i<=x;i++)
a[0][i]=1;
for(int i=1;i<=y;i++)
for(int j=1;j<=x;j++)
a[i][j]=a[i-1][j]+a[i][j-1];
for(int i=0;i<=y;i++)
{
cout<<i<<"行: ";
for(int j=0;j<=x;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
string s="";
f(x,y,111,a,s);
return 0;
}
void f(int x,int y,int k,vector<vector<int>> a,string s)
{
if(k>a[y][x]) {cout<<"too big K"<<endl;return;}
if(x==0||y==0)
{for(int i=0;i<x;i++)
s.push_back('a');
for(int i=0;i<y;i++)
s.push_back('z');
cout<<s<<endl;
return;
}
int nu=0;
for(int i=0;i<=x;i++)
if(nu+a[y-1][i]>=k)
{for(int j=0;j<x-i;j++)
s.push_back('a');
s.push_back('z');
f(i,y-1,k-nu,a,s);break;
}
else nu+=a[y-1][i];
}
跟楼主思路差不多,C++的,X Y分别代表a和z的个数,k是第几个。
查看原帖
点赞 评论
相关推荐
09-12 18:28
门头沟学院 Java 点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 从顶到拉给所有面过的公司评分 #
9220次浏览 96人参与
# 晒晒你的中秋福利 #
14520次浏览 87人参与
# 为了求职,我做过的疯狂伪装 #
9785次浏览 145人参与
# 机械人春招想让哪家公司来捞你? #
356629次浏览 3102人参与
# 职场破冰,你们都聊什么? #
5285次浏览 56人参与
# 工作压力大怎么缓解 #
104511次浏览 1047人参与
# 机械人怎么评价今年的华为 #
208349次浏览 1524人参与
# 广联达求职进展汇总 #
10462次浏览 50人参与
# 你面试被问到过哪些不会的问题? #
17292次浏览 680人参与
# bilibili求职进展汇总 #
82825次浏览 764人参与
# 聊聊这家公司值得去吗 #
551221次浏览 3673人参与
# 实习要如何选择和准备? #
114277次浏览 1436人参与
# 秋招报数:你投了多少家公司? #
24809次浏览 248人参与
# 电网笔面经互助 #
46214次浏览 428人参与
# 你觉得早上几点上班合适? #
82111次浏览 329人参与
# 秋招的嫡长offer #
23110次浏览 207人参与
# 上班摸鱼,你都在干些什么? #
5636次浏览 93人参与
# 机械笔面试考察这些知识点 #
10174次浏览 89人参与
# 浪潮求职进展汇总 #
16316次浏览 131人参与
# 上班后和你想的一样吗? #
78941次浏览 629人参与