第十五届蓝桥杯题解-好数
题目大意:一个数的低位为奇数,次低位为偶数,以此类推的数成为好数,例如:1,3,5,7,9
给定一个n,求1-n所有好数的个数,n<=1e7
思路:一个个跑然后判断奇数偶数位,时间复杂度nlong8
代码:
#include<bits/stdc++.h>
using namespace std;
int n,ans;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
// 用于判断该数是不是好数
bool f=true,ff=true;
int num=i;
while(num){
if(f){
if(num&1)f=false;
else{
ff=false;
break;
}
}
else{
if(num&1){
ff=false;
break;
}else f=true;
}
num/=10;
}
// 输出所有好数
// if(ff)cout<<i<<endl;
if(ff)ans++;
}
cout<<ans<<endl;
return 0;
}
最后提一嘴:
这个爬山题也太难了吧,2 1 1 48 49这种样例咋做啊!!!期待官方std
原文地址:https://blog.csdn.net/qq_75125305/article/details/137808144
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!