运用贪心法和递归调用求解的题目各一题

来源:百度知道 编辑:UC知道 时间:2024/06/04 12:10:57
(格式)贪心法:

递归调用:

不要太简单.
题目,答案都要有

贪心法:
删数问题:(shanshu)
键盘输入一个高精度的正整数N(此整数中没有‘0’),去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。
输出应包括所去掉的数字的位置和组成的新的正整数。(N不超过240位)
输入数据均不需判错。
【输入】
n
s
【输出】
最后剩下的最小数。
【样例输入】
175438
4
【样例输出】
13

//代码(C++)
#include <iostream.h>
#include <string.h>
int main()
{
char a[241];
int s;
int i,j,k;
int flag[241];
int flag2;
cin>>a;
cin>>s;
for (i=0;i<strlen(a);i++)
flag[i]=1;
for (i=0;i<s;i++)
{
flag2=1;
for (j=0;j<strlen(a)-1;j++)
{
if (flag[j]==1)
{
k=j+1;
while(flag[k]==0)
k++;
if (a[j]>a[k])
{
flag[j]=0;
flag2=0;
break;
}
}
}
if (flag2==1)//表示没有删除数据
{

j=strlen(a)-1;
//cout<<a[j]<<flag[j]<<endl;
while(flag