蓝桥杯好数
- 手机
- 2025-08-25 01:57:01

样例输入: 24 输出:7 输入:2024 输出: 150
思路:本题朴素方法的时间复杂度是O(n * log10(n)) ,不超时。主要考察能否逐位取数,注意细节p=i,这样不会改变i,否则会导致循环错误。
#include <iostream> using namespace std; int main() { int n,ans=0; cin>>n; for(int i=1;i<n;i++) { int c=1,f=0; ///cout<<i<<endl; int p=i; while(p!=0) { int m=p%10; m%=10; if(m%2!=1&&c%2==1) { f=1;break; } if(m%2!=0&&c%2==0) { f=1; break; } p/=10; c++; } if(f==0) { ans++; } } printf("%d\n",ans); return 0; }