题目大意:给定一个01字符串,可以任意删除其中的字符,问是否通过一定操作后可以使最终字符串所表示的二进制数为64的倍数
64的倍数也可以看作2的6次方的倍数,所以将任意数左移6位,这个数就成为64的倍数,于是只要检查字符串中第一个1的后面是否有6个0即可
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
string a;
int sum;
bool flg = false;
int main () {
cin >> a;
for(int i=a.length()-1; i>=0; i--) {
if(a[i] == '0') {
sum++;
}
if(a[i] == '1') {
if(sum >= 6) {
flg = true;
}
}
}
if(flg) printf("yes");
else printf("no");
return 0;
}