zoukankan      html  css  js  c++  java
  • 高精度整数去位去最小问题

    Description
    键盘输入一个高精度的正整数N,去掉其中任意M个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和M寻找一种方案使得剩下的数字组成的新数最小。输出组成的新的正整数。(不超过240位) 输入数据均不需判错。如果去掉了某几个位后得到的新整数开头为0,保留0。
    Input
    本题有多组测试数据,每组测试数据占一行。一个高精度正整数N(N不超过240位)一个正整数M。(M为不大于N的长度的正整数) N,M由一个空格分开。
    Output
    新的正整数,每组数据的输出占一行。不要多余的空白

    Sample Input

    456547 1
    456547 2
    103 1

    Sample Output

    45547
    4547
    03





    主要运用贪心算法,每一位上的数字尽可能小就满足

    #include<stdio.h>
    #include<string.h>
    void main()
    {
    char s[250];
    int n;
    while(scanf("%s %d",s,&n)!=EOF)
    {
    int i,k=strlen(s);
    if(k==n){printf("0 ");continue;}
    while(n)
    {
    int j=0;
    for(i=0;i<k-1;i++)
    if(s[i]>s[i+1])
    {
    for(j=i;j<k-1;j++)
    s[j]=s[j+1];
    k--;
    j=-1;
    break;
    }
    if(j!=-1)k--;
    n--;
    }
    for(i=0;i<k;i++)printf("%c",s[i]);
    printf(" ");
    }
    }

  • 相关阅读:
    C# 执行bat文件 PHP
    windows服务操作 sc批处理 PHP
    HTML 彩虹 PHP
    C# 简易日志记录类 PHP
    C# 读写INI文件 PHP
    .NET Framework PHP
    序列号备忘 PHP
    获取浏览器版本信息
    数据库中Image字段存储读取数据
    [转]装机推荐 5000元铸造最强游戏平台
  • 原文地址:https://www.cnblogs.com/zhang20115330/p/3193035.html
Copyright © 2011-2022 走看看