//问题描述:输入一长串整数字符,例如654631
这些数字的组合不能表示的最小整数是多少
例如:输入:0123456789
输出:11
即:0123456789不能表示的最小整数为11;
输入:55
输出:1
#include<stdio.h>
#include<string.h>
int main(){
int n,m,i,j=0,temp;
char in[999];
int a[10],b[10];
for(i=0;i<10;i++){
a[i]=0;
b[i]=0;
}
scanf("%s",in);
m=strlen(in);
// printf("%d",m);
for(i=0;i<m;i++){
if(in[i]=='0')a[0]++;
if(in[i]=='1')a[1]++;
if(in[i]=='2')a[2]++;
if(in[i]=='3')a[3]++;
if(in[i]=='4')a[4]++;
if(in[i]=='5')a[5]++;
if(in[i]=='6')a[6]++;
if(in[i]=='7')a[7]++;
if(in[i]=='8')a[8]++;
if(in[i]=='9')a[9]++;
}
while(1){
j++;
temp=j;
char tt[100];
itoa(temp, tt, 10);
//printf("%d",strlen(tt));
for(i=0;i<strlen(tt);i++){
if(tt[i]=='0')b[0]++;
if(tt[i]=='1')b[1]++;
if(tt[i]=='2')b[2]++;
if(tt[i]=='3')b[3]++;
if(tt[i]=='4')b[4]++;
if(tt[i]=='5')b[5]++;
if(tt[i]=='6')b[6]++;
if(tt[i]=='7')b[7]++;
if(tt[i]=='8')b[8]++;
if(tt[i]=='9')a[9]++;
}
for(i=0;i<10;i++){
if(a[i]<b[i]){
printf("%d",j);
return ;
}
}
for(i=0;i<10;i++){
b[i]=0;
}
}
}