P10571 [JRKSJ R8] 三七二十一
nightwatch.ryan
·
·
题解
思路
但是,$65536$ 非常特殊,他不含一位数的 $2$ 的幂,所以有 $65536$ 的时候,答案也要增加 $1$,并且还需要给最后一位覆盖成 $7$ 或者 $9$。
在题目给定的范围里,只有 $65536$ 一个数字是非常特殊的,所以只要特判一下 $65536$ 即可。
### 代码
```cpp
#include<iostream>
std::string s;
bool check(char x){
if(x=='1'||x=='2'||x=='4'||x=='8')
return true;
return false;
}
int main(){
std::cin>>s;
int ans=0;
for(int i=0;i<s.size();i++){
ans+=check(s[i]);
if(s[i]=='6'&&s[i+1]=='5'&&s[i+2]=='5'&&s[i+3]=='3'&&s[i+4]=='6'){
ans++;
s[i+4]='9';
}
}
std::cout<<ans;
}
```