zoukankan      html  css  js  c++  java
  • 贪心算法——删除数字求最小值

    #include<stdio.h>
    void main()
    {    int i,k,m,n,t,x,a[10000];
        char b[10000];
        printf("  请输入整数:");
        scanf("%s",b);              //  以字符串方式输入高精度整数 
        for(n=0,i=0;b[i]!='';i++)
          {n++;a[i]=b[i]-48;}
        printf("  删除数字个数:  ");scanf("%d",&k);
      if(n<=k)
        { printf("  整数中数字不够删!
     ");return;}
        printf("  以上%d位整数中删除%d个数字分别为: ",n,k);
        t=0;m=0;x=0;
        i=t+1;             
        while(x<k && i<=n)        // 删除的数字后已无递增区间,脱离循环        
         { if(t>=0 && a[t]>a[i])  // 出现递增,删除递增的首数字
            { printf("%d, ",a[t]);
              a[t]=-1;             // 删除的数字标记-1
              while(t>=0 && a[t]==-1)
    t--;            // 从删除数字的前一位非-1数字开始查找递增区间
              x=x+1;             // x统计删除数字的个数  
            }
         else t=i++;
        }
        printf("
      删除后所得最小数: ");
        for(i=0,x=0;x<n-k;i++)    // 打印左边的n-k个非-1数字 
          if(a[i]!=-1)
            { printf("%d",a[i]);x++;    }
          printf("
    ");
    }

  • 相关阅读:
    __del__ 析构方法 __init__ 构造方法
    单态模式
    面向对象小练习2
    __new__ '''魔术方法
    菱形继承
    继承:多继承
    继承: .单继承
    面向对象小练习
    __init__ 魔术方法
    如何访问私有成员
  • 原文地址:https://www.cnblogs.com/liao-pxsoftware15/p/8146698.html
Copyright © 2011-2022 走看看