wu


私信TA

用户名:cncfvc

访问量:227217

签 名:

读研狗没有时间刷题了~~

等  级
排  名 3
经  验 37386
参赛次数 8
文章发表 265
年  龄 25
在职情况 学生
学  校 电子科技大学
专  业 通信工程

  自我简介:

写代码 真好玩 ~



参考代码:

#include<iostream>
#include<cstring>
#include<sstream>
#include<algorithm>
using namespace std;
//int s;
int a[1000];
int i=0;
void Line(int n,string str)
{
if(n==str.length())//表示其中一种排列的情况
{
int num;
int flag=0;
stringstream ss(str);//将该字符串放入到输入流中并赋值给ss
ss>>num;//将ss中的内容变成整数赋给num
for(int j=0;j<i;j++)//判断该整数是否已经在a数组内
{
if(num==a[j])
flag=1;
}
if(flag==0)
a[i++]=num;//不在则把该整数放入到该数组
//cout<<str<<endl;
return;//返回
}
for(int i=n;i<str.length();i++)
{
{
char t=str[i];str[i]=str[n];str[n]=t;//交换首字符和其他字符的位置
}
Line(n+1,str);//对剩下的字符串进行全排列
char s=str[i];str[i]=str[n];str[n]=s;//回溯
}
}
int main()
{
//freopen("data.in.txt","r",stdin);
//freopen("data.out.txt","w",stdout);
string str;
cin>>str;//输入字符串
Line(0,str);//进行全排列
sort(a,a+i);//对a数组中的数进行从大到小的排列
for(int j=0;j<i;j++)
{
stringstream ss;
ss<<a[j];//把整数变成字符串流赋给ss
string str1=ss.str();//把字符串流赋给str1。
for(int i=str1.length();i<str.length();i++)//这是针对数字中有0的情况 字符串变成整数后 前面的0会被省略  所以在此处补充上
{
cout<<"0";
}
cout<<a[j]<<endl;
}
cout<<endl;
return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »