zoukankan      html  css  js  c++  java
  • hdu4278 小想法

    题意:
          有几个计数器,从1开始计数,计数器有问题,没有3,8这两个数字,只要出现3或者8,那么直接跳过,如 12579 下一个数字就是 12590 ,给你一个数字,问他实际计数了多少。


    思路:
         直接把输入数字的每一位处理一下,对于当前这位,如果它 >= 3 && <= 8 那么-1 ,

    如果它 >8 那么-2,这样就把他变成另一个数,此时的这个数是八进制数,在把他转换成十进制数就行了。。如 59 先 把它变成 47,然后转换成十进制是 7 + 4 * 8 = 39,就ok了。


    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    
    int main ()
    {
       char str[100];
       while(~scanf("%s" ,str) && str[0] != '0')
       {
          int l = strlen(str) - 1;
          int tt = 0;
          int ans = 0;
          for(int i = l ;i >= 0 ;i --)
          {
             int now = str[i] - 48;
             if(now >3 && now < 8)now --;
             if(now >8) now -= 2;
             ans +=now * (int)pow(8 ,tt);
             tt ++;
          }
          printf("%s: %d
    ", str,ans);
       }
       return 0;
    }
    

  • 相关阅读:
    Session
    python内存优化机制中的小秘密
    跨域请求
    Cookie
    json
    Python深浅拷贝辨析
    Django form组件相关
    Python 中的 if __name__ == '__main__'
    online_judge_1108
    online_judge_1107
  • 原文地址:https://www.cnblogs.com/csnd/p/12063251.html
Copyright © 2011-2022 走看看