本文主要是介绍美团面试题二---没写完系列续集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//问题描述:输入一长串整数字符,例如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;}}
}
这篇关于美团面试题二---没写完系列续集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!