下一个排列
描述
给定一个正整数x,请找到一个最小的数字y,使得数字0到9在y中的出现次数与在x中的出现次数分别对应相等,且x<y。
输入
输入只有一行一个整数,表示x。 1≤x<10^6
输出
输出一行一个整数表示答案。 若这样的y不存在请输出0。
input
156
output
165
input
330
output
0
此题用next_permutation()函数即可
完整代码如下
#include <bits/stdc++.h>
using namespace std;
char s[1000010];
int main(){
gets(s);
int l=strlen(s);
if(next_permutation(s,s+l))cout<<s;
else cout<<0;
return 0;
}
本文介绍如何使用C++的next_permutation函数解决题目,寻找给定整数x的最小数字y,使得0到9的出现次数在y中与x中相等。对于不存在的y,输出0。

2462

被折叠的 条评论
为什么被折叠?



