测试数据:
178543
4
13289
1
13289
2
#include<stdio.h>
#include<string.h>
int min = 0;
//实现pow的n次方
int Pow(int pow, int n)
{
int sum=1;
if(n==0)
return sum;
for(int i=1;i<=n;i++)
sum*=pow;
return sum;
}
//删除data的第i位数,并返回删除后的值
int deleteNum(data,i,datalen)
{
int sum = 0;
int n = 0;
for(int j = 1;j<=datalen;j++)
{
if(i==j)
{
data /=10;
continue;
}
sum = sum + (data%10)*Pow(10,n);
data /=10;
n++;
}
return sum;
}
//实现寻找data的位数函数
int Datalen(int data)
{
int i=0;
while(data)
{
data = data/10;
i++;
}
return i;
}
//实现删除n个数的函数,递归实现
int DeleteFun(int data, int delCount, int datalen)
{
if(delCount<=0)
{
if(min>data)
min = data;
return 0;
}
else
{
for(int i=1;i<=datalen;i++)
{
int T_data = data;
int temdata = deleteNum(data,i,datalen);
DeleteFun(temdata, delCount-1, datalen-1);
data = T_data;
}
}
}
int main()
{
int data;
scanf("%d", &data);
min = data;
int delCount;
scanf("%d", &delCount);
int datalen = Datalen(data);
if(datalen<delCount)
return 0;
DeleteFun(data, delCount,datalen);
printf("%d", min);
return 0;
}