Codeforces 887A Div. 64

来源:互联网 发布:浙江大学网络平台 编辑:程序博客网 时间:2024/06/06 00:47

题目大意:给定一个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;}
原创粉丝点击