• 大小: 1KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: C/C++
  • 标签: 删数问题  

资源简介

问题描述: 给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列成一个新的正整数。 算法设计: 给定n (1<=n<=200)位的正整数a和k,此时,k小于n。 试着设计一个算法,找出删去k个数,剩下数字组成的新数最小的删数方案。 输入格式 可输入多组测试数据(不超过50组测试数据),每组测试数据分两行,每行一个数,数的含义如下。 第一行:正整数a(a是大于0的一个n位正整数) 第二行:正整数k 以0来结束测试数据。 输出格式 输出每组测试数据所得出的删k位数之后的最小数。 若输出的数首位是0,无须理会,0也直接输出即可。例如:024,就直接输出0

资源截图

代码片段和文件信息

#include
#include
int main()
{
    char a[200]={0}b[200][200];//a作为临时数组储存输入的字符串
    int i=0temp;
int n=1m;
int k;
    int yx=0;
scanf(“%s“&a);
while(a[0] != ‘0‘)
{
i=strlen(a);//求出数组的实际长度
scanf(“%d“&k);//输入要删掉的位数
b[x][0] = i-k;
for(y=1;y<=i;y++)//把数组的顺序倒过来
{
b[x][y] = a[y-1];
}
while(k!=0)//找出其中比前一个数大同时也比后一个数大的数,并删除
{
for(n=1;n {
if(b[x][n] > b[x][n+1])
{
if(n==1)

评论

共有 条评论

相关资源