题目链接
题意:给一个数,和一个k,要你删除数里面的某些数字使得这个数能被k整除,求最少删除多少个数?
1.0的个数小于k,删除所有位只剩一个0
2.0的个数大于等于k,从后向前直到后面的0的个数等于k
#include <iostream>
using namespace std;
string s;
int k;
int main()
{
cin >> s >> k;
int len = s.size();
int ans = 0;
for(int i = len - 1; i >= 0; i--){
if(s[i] == '0'){
k--;
if(k == 0) break;
}
else ans++;
}
if(k != 0) cout<<len-1<<endl;
else{
cout<<ans<<endl;
}
return 0;
}