寻找最大数

来源:互联网 发布:淘宝客靠谱吗 编辑:程序博客网 时间:2024/06/05 23:59

题目描述

请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,

比如当n=92081346718538,m=10时,则新的最大数是9888

输入:

请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,

比如当n=92081346718538,m=10时,则新的最大数是9888

输出:

每组测试数据的输出占一行,输出剩余的数字按原次序组成的最大新数

AC代码如下:

#include <stdio.h>#include <iostream>#include <string.h>int main(){int i,k,t,m,end,flag,len;char a[110],temp;scanf("%d",&t);while(t--){memset(a,0,sizeof(a)); //功能:把buffer所指内存区域的前count个字节设置成字符c。返回指向buffer的指针。scanf("%s %d",a,&m);i=k=0, end=m,len=strlen(a);while(end<len){for(i=flag=k,temp=a[i];i<=end;i++){if(a[i]>temp){flag=i;temp=a[i];}}k=flag+1;end++;printf("%c",temp);}printf("\n");}return 0;}

运行结果如下:


想法:

 每次求出局部最优以达到全局最优


0 0
原创粉丝点击