题目解读:给一个二进数,看它超过4的多少次幂。
解题思路:1.java大数类,c/c++高精度.可以做出来,好像挺复杂。
2.二进制转四进制。
设二进数长度为l。
如果l为偶数,直接l/2。
如果l为奇数,判断除最高位之后的各个位置上数是不是出现1,如果出现则为l/2+1,否则为l/2。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;cin>>s;
int f=0,l=s.size(),count=l/2;
int f1=l%2;
for(int i=1;i<s.size();i++)
if(s[i]=='1')
{
f=1;break;
}
if(f&&f1) count++;
cout<<count<<endl;
return 0;
}