zoukankan      html  css  js  c++  java
  • 贪心算法——删数问题

    8605 删数问题

    时间限制:1000MS  内存限制:1000K
    提交次数:855 通过次数:432

    题型: 编程题   语言: 无限制

     

    Description

    问题描述: 
    给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列成一个新的正整数。 

    算法设计: 
    给定n (1<=n<=200)位的正整数a和k,此时,k小于n。 
    试着设计一个算法,找出删去k个数,剩下数字组成的新数最小的删数方案。



    输入格式

    可输入多组测试数据(不超过50组测试数据),每组测试数据分两行,每行一个数,数的含义如下。 
    第一行:正整数a(a是大于0的一个n位正整数) 
    第二行:正整数k 

    以0来结束测试数据。



    输出格式

    输出每组测试数据所得出的删k位数之后的最小数。 
    若输出的数首位是0,无须理会,0也直接输出即可。例如:024,就直接输出024,无须改成24。



     

    输入样例

    178543
    4
    87654321
    2
    123456789
    1
    254193
    1
    90249
    2
    0


     

    输出样例

    13
    654321
    12345678
    24193
    024


     

    提示

    按高位到低位的方向搜索递减区间,考虑删除递减区间的首字符。
    
    注意:这道题和其他题的输入输出不同,这题是接收多组数据而非单组,以0来判别结束.
    大家在接受数据的时候,不要用(c=getchar())!='
    '诸如此类一个字符一个字符接受,然后判断是否是回车符号来结束一行的输入,
    这样的方式在你本机运行不会有问题,但OJ系统中会有错误,无法输出结果,因为测试平台行末并非'
    '字符。
    这里接受数据用scanf的%s,或cin等,会自动判别结束字符的,你就不要在你程序里专门去判别或吸收回车字符。
    
    对于最后一组数据输入为0表示结束,只要判断接受的第一个字符是否为0且字符串长度为1就结束,无须去处理回车字符。
    



     

    作者

    zhengchan

    AC答案:

    #include<stdio.h>
    #include<string.h>

    void del(char *a,int i){
    int len = strlen(a);
    for(int j = i;j<len-1;j++){
    a[j] = a[j+1];
    }
    a[j]='';
    }

    void delNum(char * a,int k){
    int len = strlen(a);
    while(k>0){
    for(int i =0;i<len-1 && a[i]<=a[i+1];i++);
    del(a,i);
    k--;
    }
    //printf("%s",a);
    }


    int main(){
    char a[200],temp[50][200];
    int k,c=0;

    while(1){
    scanf("%s",a);
    if(a[0]=='0' && strlen(a)==1){
    break;
    }
    scanf("%d",&k);
    delNum(a,k);
    int i=0;
    while(a[i]!=''){
    temp[c][i]=a[i];
    i++;
    }
    temp[c][i]='';
    c++;
    }

    for(int i=0;i<c;i++)
    printf("%s ",temp[i]);

    return 0;
    }

  • 相关阅读:
    品Spring:真没想到,三十步才能完成一个bean实例的创建
    品Spring:对@Autowired和@Value注解的处理方法
    品Spring:对@Resource注解的处理方法
    品Spring:对@PostConstruct和@PreDestroy注解的处理方法
    品Spring:详细解说bean后处理器
    品Spring:bean工厂后处理器的调用规则
    品Spring:注解之王@Configuration和它的一众“小弟们”
    品Spring:SpringBoot发起bean定义注册的“二次攻坚战”
    品Spring:SpringBoot轻松取胜bean定义注册的“第一阶段”
    .net的retrofit--WebApiClient底层篇
  • 原文地址:https://www.cnblogs.com/mo-wang/p/3434514.html
Copyright © 2011-2022 走看看