1 条题解
-
0
C :
#include <stdio.h> #include <math.h> #include <string.h> //删去1个数字,使结果最大 void del(char* str) { int i; int len = strlen(str); for(i=0; i<len-1; ++i) { if(str[i]<str[i+1]) { strcpy(str+i,str+i+1); return ; } } strcpy(str+i,str+i+1); } int main() { int i,k,n,T; char arr[100]; scanf("%d",&T); while(T--) { scanf("%d%d",&k,&n); sprintf(arr,"%d",k); for(i=0; i<n; ++i) del(arr); printf("%s\n",arr); } return 0; }
C++ :
#include<stdio.h> #include<string.h> int main() { char a[200],b[200]; int i,j,k,l,m,n; scanf("%d",&n); for (i=0;i<n;i++) { scanf("%s %d",a,&m); l=strlen(a); m=l-m; int y=0; if (m==0) printf("0"); for (j=0;j<m;j++) { int x=0; char c='-'; for (k=y;k<l-m+j+1;k++) if (a[k]>c){c=a[k]; x=k;} b[j]=c; y=x+1; } for (j=0;j<m;j++) printf("%c",b[j]); printf("\n"); } }
Pascal :
var i,j,k,n,x,z:longint; s:string;y:char; begin readln(x); for z:=1 to x do begin read(y);s:=''; while y<>' ' do begin s:=s+y;read(y); end; readln(n); while n>0 do begin i:=1; while (i<length(s)) and (s[i]>=s[i+1]) do inc(i); delete(s,i,1); dec(n); end; while (length(s)>1) and (s[1]='0') do delete(s,1,1); writeln(s); end; end.
- 1
信息
- ID
- 689
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者