网站建设网络推广销售,经典企业网站欣赏,温州网络推广服务好吗,河南省重点项目建设网官网删数问题给定n位正整数a#xff0c;去掉其中任意k个数字后#xff0c;剩下的数字按原次序排列组成一个新的正整数。对于给定的n和k#xff0c;设计一个算法#xff0c;找出剩下数字组成的新数最少的删数方案。输入示例#xff1a; 178543 4输出#xff1a; 13输入示例去掉其中任意k个数字后剩下的数字按原次序排列组成一个新的正整数。对于给定的n和k设计一个算法找出剩下数字组成的新数最少的删数方案。输入示例 178543 4输出 13输入示例 56317 3输出 17分析每一步总是选择一个使剩下的数最小的数字删除。即按高位到低位的顺序搜索若各位数字递增则删除最后一个数字否则删除第一个递减区间的首字符。删除之后其他数字往前移动一位填补位置。最后把剩下的几个数字组成一个整数。#include#includeint main(){int a,n,k; //n指a有多少位int i,j,s1;scanf(%d,a); //a为输入的整数scanf(%d,k); //删去k个数字nlog10(a)1;int p[n];ja;for(in-1;i0;i--){ //数组p中从0到n-1,分别为5 6 3 1 7p[i]j%10;j/10;}for(i1;ik;i){ //控制删去的个数for(j0;jif(p[j]continue;}else{ //如果递减删除第一个数p[j]-1;break;}}for(j0;jif(p[j]-1){ //都往前挪p[j]p[j1];p[j1]-1;}}}for(i0;iprintf(%d,p[i]);}return 0;}运行截图