删数问题Word格式文档下载.docx

上传人:b****1 文档编号:15348582 上传时间:2022-10-29 格式:DOCX 页数:14 大小:17.73KB
下载 相关 举报
删数问题Word格式文档下载.docx_第1页
第1页 / 共14页
删数问题Word格式文档下载.docx_第2页
第2页 / 共14页
删数问题Word格式文档下载.docx_第3页
第3页 / 共14页
删数问题Word格式文档下载.docx_第4页
第4页 / 共14页
删数问题Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

删数问题Word格式文档下载.docx

《删数问题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《删数问题Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

删数问题Word格式文档下载.docx

str,intn)

{

booldel;

for(inti=n;

i>

0;

i--)

del=false;

//每次删除第一个比下一个数字大的数

for(string:

:

iteratorit=str.begin();

it!

=str.end()-1;

it++)

if(*it>

*(it+1))

str.erase(it);

del=true;

break;

}

//如果所有数字递增,则删除最后几个数字直接返回

if(!

del)

str.erase(str.end()-i,str.end());

returnstr;

intmain()

intn;

stringstr;

cin>

>

str;

n;

cout<

<

greedy(str,n)<

endl;

return0;

代码2:

#include<

stdio.h>

stdlib.h>

string.h>

intnum=0;

charstr[100];

inta[100];

scanf(“%d”,&

num);

//数字

n);

//个数

itoa(num,str,10);

//转换为字符串

intflag=0;

//是否是递增序列

inti;

intlength=strlen(str);

//长度

intx=length-n;

while(length!

=x)

flag=0;

//递增

for(i=0;

i<

length-1;

i++)

if((str[i]-’0′)>

(str[i+1]-’0′))//比后一个数大删掉

for(inttemp=i;

temp<

temp++)

str[temp]=str[temp+1];

//覆盖

}

length–;

flag=1;

//非递增 

if(flag==0)

//递增序列 

删除最后一个 

inttempFlag=0;

if(str[0]==’0′)

tempFlag=1;

//首位为0不应输出

for(inti=0;

length;

if(tempFlag==1)

tempFlag=0;

else

printf(“%c”,str[i]);

system(“pause”);

代码3:

voidfind()

charN[200];

ints;

inti=0,j;

printf("

inputthenumber:

"

);

scanf("

%s"

N);

\ninputtimes:

%d"

&

s);

while(s>

0)/*循环减s次*/

i=0;

/*每次删除后重头开始*/

while(i<

strlen(N)&

&

N[i]<

=N[i+1])i++;

/*算法核心*/

for(j=i;

j<

strlen(N);

j++)N[j]=N[j+1];

/*移位将删除的覆盖*/

s--;

find();

system("

pause"

代码4:

intsel(int);

intsum,len,in[20];

voidmain()

intinput,num;

【输入】\n"

%ld"

input);

inti=0;

for(;

input!

=0;

in[i]=input%10;

input/=10;

len=i;

if(-1==(sum=sel(num)))

return;

【输出】\n%d\n"

sum);

intsel(intn)

intj,k,l,m;

switch(len-n)

case0:

sum=0;

case1:

sum=in[0];

for(j=0;

len;

j++)

sum=sum>

in[j]?

in[j]:

sum;

case2:

sum=in[1]*10+in[0];

for(k=j+1;

k<

k++)

(in[k]*10+in[j])?

(in[k]*10+in[j]):

case3:

sum=in[2]*100+in[1]*10+in[0];

for(l=k+1;

l<

l++)

(in[l]*100+in[k]*10+in[j])?

(in[l]*100+in[k]*10+in[j]):

case4:

sum=in[3]*1000+in[2]*100+in[1]*10+in[0];

for(m=l+1;

m<

m++)

(in[m]*1000+in[l]*100+in[k]*10+in[j])?

(in[m]*1000+in[l]*100+in[k]*10+in[j]):

case5:

case6:

default:

输入错误或超限!

\n"

return-1;

returnsum;

代码5:

#include"

stdafx.h"

conio.h"

string.h"

#definestrMax1000

voidGreedDelNumber(charstr[],intlen,ints)

//

//for(inti=0;

i<

len;

i++)

//printf("

%c"

str[i]);

//printf("

);

if(s==0)

charnum[strMax]={0};

intj=0;

for(inti=0;

if(str[i]!

=0)

num[j++]=str[i];

strcpy(str,num);

intj=i+1;

while(str[j]==0&

j<

len)

j++;

if(j>

=len||str[i]>

str[j])

str[i]=0;

GreedDelNumber(str,len,s-1);

int_tmain(intargc,_TCHAR*argv[])

charstr[]="

41235"

;

ints=2;

printf("

原数为:

%s\n"

str);

长度为:

%d\n待删数:

%d\n"

strlen(str),s);

GreedDelNumber(str,strlen(str),s);

删除后:

getch();

代码6:

constintLimit_Size=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1