#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是第几个。
点赞 评论

相关推荐

10-28 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
牛客网
牛客企业服务