SKTT1Faker


私信TA

用户名:dotcpp0617101

访问量:652

签 名:

等  级
排  名 137
经  验 7442
参赛次数 3
文章发表 3
年  龄 0
在职情况 学生
学  校 湖南工程学院
专  业

  自我简介:

解题思路:字符串读取,化数组后排序,dfs求解,并标记答案。

注意事项:记得考虑前导0的情况

参考代码:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<math.h>

char t[99];

int a,d[99],h[99]={0},ds[99],xyr,hh[999999]={0};

void dfs(int n){

int i,fl;

if(n==a){

xyr=0;

for(i=0;i<n;i++){

xyr=xyr*10+ds[i];

}

    if(!hh[xyr]){

    fl=0;

    for(i=0;i<n;i++){

    if(!ds[i]){

    if(!fl){

    printf("0");

}

}else fl=1;

}

    printf("%d\n",xyr);

    hh[xyr]=1;

}

}

for(i=0;i<a;i++){

if(!h[i]){

h[i]=1;

ds[n]=d[i];

dfs(n+1);

h[i]=0;

}

}

}

int main(){

    int b,c,e,i,j,fl=0;

scanf("%s",t);

a=strlen(t);

for(i=0;i<strlen(t);i++){

d[i]=t[i]-'0';

}

for(i=0;i<a;i++){

for(j=0;j<a-1-i;j++){

if(d[j]>d[j+1]){

e=d[j];

d[j]=d[j+1];

d[j+1]=e;

}

}

}

dfs(0);

}


 

0.0分

1 人评分

  评论区

  • «
  • »