本文主要是介绍删数问题 oj,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
删数问题
Problem Description
Input
Output
Sample Input
178543 4
Sample Output
13
Hint
Source
#include <stdio.h> #include <string.h> int main() { int i,j,k,n,l; char a[110]; while(~scanf("%s",a)) { scanf("%d",&n); if(strlen(a)==n) { printf("0\n"); continue; } while(n>0) { i=0; l=strlen(a); while(i<l&&a[i]<=a[i+1]) i++; while(i<l) { a[i]=a[i+1]; i++; } n--; } k=0; for(i=0; i<strlen(a); i++) { if(a[i]=='0') k++; //计有几个0 } if(k==strlen(a))//如果全是0,就输出0 printf("0\n"); else { for(i=0; i<strlen(a); i++) { if(a[i]!='0') { printf("%c",a[i]); break; } } //去掉前岛0,第一个数不是0就输出 for(j=i+1;j<strlen(a);j++) { printf("%c",a[j]); } } printf("\n"); } return 0; }
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <queue>
#include <set>
#include <stack>
#include <map>
#include <cstring>
#include <vector>
using namespace std;
int main()
{
int n,i,j,flag=0;
char a[101];
while(scanf("%s",a)!=EOF)
{
int len;
len=strlen(a);
cin>>n;
for(i=0;i<n;i++)
{
j=0;
while(j<strlen(a)&&a[j]<=a[j+1])
j++;
while(j<strlen(a))
{
a[j]=a[j+1];
j++;
}
}
flag=0;
for(i=0;i<strlen(a);i++)
{
if(a[i]=='0'&&!flag)
{
}
else
{
flag=1;
cout<<a[i];
}
}
if(!flag)
cout<<"0";
cout<<endl;
}
return 0;
}
这篇关于删数问题 oj的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!