当前位置:   article > 正文

第十五届蓝桥杯题解-好数

第十五届蓝桥杯题解-好数

题目大意:一个数的低位为奇数,次低位为偶数,以此类推的数成为好数,例如:1,3,5,7,9

给定一个n,求1-n所有好数的个数,n<=1e7

思路:一个个跑然后判断奇数偶数位,时间复杂度nlong8

代码:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n,ans;
  4. int main(){
  5. cin>>n;
  6. for(int i=1;i<=n;i++){
  7. // 用于判断该数是不是好数
  8. bool f=true,ff=true;
  9. int num=i;
  10. while(num){
  11. if(f){
  12. if(num&1)f=false;
  13. else{
  14. ff=false;
  15. break;
  16. }
  17. }
  18. else{
  19. if(num&1){
  20. ff=false;
  21. break;
  22. }else f=true;
  23. }
  24. num/=10;
  25. }
  26. // 输出所有好数
  27. // if(ff)cout<<i<<endl;
  28. if(ff)ans++;
  29. }
  30. cout<<ans<<endl;
  31. return 0;
  32. }

最后提一嘴:

这个爬山题也太难了吧,2 1 1 48 49这种样例咋做啊!!!期待官方std

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/440960
推荐阅读
相关标签
  

闽ICP备14008679号