P10571 [JRKSJ R8] 三七二十一

· · 题解

思路

但是,$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; } ```