CF779B Weird Rounding
CF779B Weird Rounding
原题链接
分析
一个数能被
我们发现,如果
思路
既然是从尾部开始找
如果当前记录的
Code
#include<iostream>
#include<cstdio>
#include<stack>
using namespace std;
stack<char>n;
int num,ans;
int main(){
string q;cin>>q;
for(int i=0;i<q.length();i++){
n.push(q[i]); //各数位依次入栈
}
int b=n.size(); //记录数字位数
int k;cin>>k;
while(!n.empty()){ //栈未被清空
if(num>=k){ //处理后,被除数大于等于除数尾部0的个数
cout<<ans; //能够整除,输出尾部需要删除的非零数字个数
return 0;
}
if(n.top()=='0'){
num++; //数位为0,累加个数
n.pop();
}else{
ans++; //数位不为0,累加需要删去的个数
n.pop();
}
}
//栈空,处理后,被除数小于除数尾部0的个数
cout<<b-1; //需要删去除一个0外所有数字
return 0;
}