3、好数
题目 好数
思路分析
老朋友了 拆数分解
因为是考试所以每步都在调试 这里其实没必要 谨慎过头了
代码实现
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef long long LL;
//拆数分解 另外维护一个信息:当前的数是第几位 用个cnt计数 从1开始
int main()
{
int n;cin>>n;
LL res=0;
for(int i=1;i<=n;i++){
int x=i;
int cnt=1;//从个位开始
// cout<<"当前数为:"<<x<<" ";
bool success=true;
while(x){
int cur=x%10;
// cout<<"第 "<<cnt<<"位为: "<<cur;
if(cnt&1){//奇数位
if(cur%2==0){//是偶数
success=false;
break;
}
}
else{//偶数位
if(cur%2==1){//是奇数
success=false;
break;
}
}
x/=10;
cnt++;
}
if(success){
res++;
}
// cout<<endl;
}
cout<<res;
return 0;
}
💬 评论