文章

55

粉丝

100

获赞

12

访问

29.8k

头像
求30的倍数 题解:C++全排列函数
P1736 华东师范大学2020年机试题
发布于2024年3月24日 15:22
阅读数 600

#include <iostream>
#include <vector>
#include<string>
#include<algorithm>
using namespace std;


int main(){
	string str;
	cin>>str;
	int n  = str.length();
	vector<char> v(n);
	for(int i = 0; i<n; i++){
		v[i] = str[i];
	}
	vector<int> shuzi;
	int s = 0;
	sort(v.begin(),v.end());
	do{
		string str = "";
		for(int i =0; i<n; i++){
			str+=v[i];
		}
		int res = stoi(str);
		if(res % 30 == 0){
			shuzi.push_back(res);
		}
	}while(next_permutation(v.begin(),v.end()));

	int max = shuzi.empty() ? -1 : shuzi.front();
	for(vector<int>::iterator it = shuzi.begin(); it!=shuzi.end(); it++){
		if(*it > max){
			max = *it;
		}
	}
	cout<<max<<endl;
}
 
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发