删数问题
来源:互联网 发布:nginx 经典书籍 编辑:程序博客网 时间:2024/06/05 19:00
Problem Description
键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。
Input
输入有多组 每组包括原始数n,要去掉的数字数s;
Output
输出去掉s个数后最小的数
Example Input
178543 4
Example Output
13
#include <stdio.h>#include <string.h>char a[102],b[102];int main(){ int n,i,s,f,ff,j,k; while(scanf("%s %d",a, &s) != EOF) { ff=f=k=j=0; while(s--) { i=0; while(i < strlen(a)&&a[i] <= a[i+1]) { i++; } while(i < strlen(a)) { a[i]=a[i+1]; i++; } } if(a[0]=='0') { for(i=0;i<strlen(a);i++) { if(a[i]!='0') { ff=1; f=1; } if(ff==1) { b[k]=a[i]; k++; } } b[k]='\0'; }//前面有0去掉 if(f==0) printf("%s\n",a); else printf("%s\n",b); }}/////////////////////#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char str[101]; int s, i, j; while(~scanf("%s %d",str, &s)) { while(s>0) { i=0; while(i<strlen(str)&&str[i]<=str[i+1]) i++; for(j=i;j<strlen(str);j++) str[j]=str[j+1]; s--; } i=0; while(str[i]=='0'&&str[i]!='\0') i++; if(str[i]=='\0') printf("0"); while(str[i]!='\0') printf("%c",str[i++]); printf("\n"); memset(str,'\0',sizeof(str)); } return 0;}
1 0
- 删数问题
- 删数问题
- 1298 删数问题
- 删数问题
- 【贪心】删数问题
- 【贪心】删数问题
- 删数问题 队内赛
- 删数问题
- 删数问题
- 8605 删数问题
- 删数问题
- 删数问题
- 删数问题
- 删数问题
- 删数问题
- 删数问题
- sdut2072 删数问题
- 删数问题
- SSL JudgeOnline 1210——最佳浏览路线
- linux常用命令
- HDU3068 最长回文 manachar Pascalの多行字符串输入
- echarts 颜色设置
- leetcode412 笔记
- 删数问题
- wdcp常见组件安装方法
- 第十四周--平衡二叉树
- iOS - 关于轮播图的实现实例
- NavigationView的简单使用
- HBASE 结构详解(转载)
- nmap端口扫描
- 关于重载流插入运算符和流提取运算符的问题
- iOS打印功能详解 UIPrintInteractionController