P1106 删数问题 - 洛谷 | 计算机科学教育新生态 https://www.luogu.com.cn/problem/P1106
#include<bits/stdc++.h>
using namespace std;
string n;
int k;
string shanchu(int x){
string s;
for(int i=0;i<n.size();i++){
if(i==x)
continue;
else
s+=n[i];
}
return s;
}
void check(string &x){//这里什么时候用&什么时候不用捏?
if(x[0]=='0'){
x=shanchu(0);
}
}
int main(){
cin>>n;
cin>>k;
int cnt=0;
int i=0;
while(1){
if(n[i]>n[i+1]){
n=shanchu(i);
check(n);
i=0;
cnt++;
if(cnt==k)
break;
}
else
i++;
}
for(int i=0;i<n.size();i++){
cout<<n[i];
}
if(n.size()==0)//还有这个n.size()==0是什么意思捏?
cout<<0;
return 0;
}
这个是照着题解自己理解着写的 void check后面的string x如果不加&的话就通过不了 那什么时候要加&呢
谢谢大家!