| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 358 人关注过本帖
标题:求助啊,关于一道删除数字的问题
只看楼主 加入收藏
weberliu
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-11-12
收藏
 问题点数:0 回复次数:0 
求助啊,关于一道删除数字的问题
对给定的N位高精度正整数,去掉其中的k个数字后,使剩下的数字构成的整数最大。

输出每一行表示每个高精度正整数去掉相应的k个数字后构成的新的最大正整数。


程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    int l,i;
    scanf("%d",&l);
    while(l--)
    {
        int k,c[10],OK=0,q=0,w,f,j=0,t,p;
        char n[100];
        scanf("%s%d",n,&k);
        t=strlen(n);
        if(k>=t)
        {
            printf("0\n");
            continue;
        }
        for(i=0;i<10;i++)
            c[i]=0;
        for(i=0;i<t;i++)
        {
            if(n[i] == '0')
                c[0]++;
            if(n[i] == '1')
                c[1]++;
            if(n[i] == '2')
                c[2]++;
            if(n[i] == '3')
                c[3]++;
            if(n[i] == '4')
                c[4]++;
            if(n[i] == '5')
                c[5]++;
            if(n[i] == '6')
                c[6]++;
            if(n[i] == '7')
                c[7]++;
            if(n[i] == '8')
                c[8]++;
            if(n[i] == '9')
                c[9]++;
        }
        for(i=0;i<10;i++)
        {
            q=q+c[i];
            if(q>=k)
            {
                f=i;
                p=q-k;
                w=c[i]-p;
                break;
            }
        }
        for(i=0;i<t;i++)
        {
            if(((int)n[i]-48)>f)
                putchar(n[i]);
            if(((int)n[i]-48) == f)
            {
                      if(j < w)
                         j++;
                     else
                         putchar(n[i]);
            }
       
        }
        printf("\n");
    }
    return 0;
}
我的代码:

搜索更多相关主题的帖子: 正整数 
2011-11-12 00:33
快速回复:求助啊,关于一道删除数字的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018699 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved