精华内容
下载资源
问答
  • 我们的问题是机器人有多少种方式起点走终点。这可能是一很大的,输出的结果对10000取模。 Input 第一行输入一整数T,表示数据的组。 对于每一组数据第一行输入两整数n,m(1 ,m )。表示棋盘的...
  • XDOJ1185 - 钟爱的数字

    2014-08-28 17:34:42
     LL最喜欢的数字是2 3 8,现在他想知道,ab中间,有多少个数字只包含2,3,8    Input  有多组输入数据,第一行为一个数字case,代表有多少组输入数据 (case<=20)  以下case行每行包含两个正...

    Description

       LL最喜欢的数字是2 3 8,现在他想知道,从a到b中间,有多少个数字只包含2,3,8

     

    

    Input

     有多组输入数据,第一行为一个数字case,代表有多少组输入数据 (case<=20)
     以下case行每行包含两个正整数a,b代表如题意所述的区间 (1<=a<=b<=10^8)

    Output

     一共case行,每行一个整数对应该组区间内包含多少个期望的数字

    Sample Input

    2
    2 3
    2 11

    Sample Output

    2
    3

    解题思路:

    由于数字只能由2、3、8组成,所以可以找出小于10^8的所有的合格要求的数,可以用BFS或DFS找到符合要求的数,并把它们存储起来。保证从小到大的顺序,然后找到大于等于a的第一个数所有索引,再找到大于b的第一个数所在的索引,最后求得这两个索引的差,即为结果。

    #include<iostream>
    #include<vector>
    #include<deque>
    #include<algorithm>
    using namespace std;
    const int D = 8;
    vector<int> number;
    deque<int> Q;
    void init()
    {
        Q.push_back(2);
        Q.push_back(3);
        Q.push_back(8);
    }
    void BFS()
    {
        int depth = 0;
        int n = 0;
        int m = 3;
        int fact = 10;
        while(!Q.empty())
        {
            int t = Q.front();
            Q.pop_front();
            ++n;
            if(n%m==0)
            {
                ++depth;
                m = 3*m;
                n = 0;
                if(depth==D)
                {
                    number.push_back(t);
                    break;
                }
            }
            number.push_back(t);
            Q.push_back(2+fact*t);
            Q.push_back(3+fact*t);
            Q.push_back(8+fact*t);
        }
    
    }
    int main()
    {
        int caseN;
        cin>>caseN;
        init();
        BFS();
        for(int m=0;m<caseN;++m)
        {
            int a,b;
            cin>>a>>b;
            vector<int>::iterator itera = find_if(number.begin(),number.end(),bind2nd(greater_equal<int>(),a));
            vector<int>::iterator iterb = find_if(number.begin(),number.end(),bind2nd(greater<int>(),b));
            cout<<iterb-itera<<endl;
        }
    
        return 0;
    }
    

     

    最后欢迎大家访问我的个人网站: 1024s

    展开全文
  • 练习P20入门版答案

    2018-04-20 10:51:04
    18. 某本书的页码1开始,小明算了算,总共出现了202个数1,试编程求这本书一共有多少页? 19. 键盘上输入两个不超过32767的整数,试编程序用竖式加法形式显示计算结果。 例如: 输入 123, 85 显示: 123  +...
  • 这两块巧克力又含有两张优惠券,所以,再加上最初剩下的6张优惠券,就一共有8张优惠券。这样一来,我们又可以用其中的7张优惠券兑换最后一块巧克力。最后,我们得到23块巧克力和两张富余的优惠券。 进一步,如果更改...
  • 37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 24 38、try {}里一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的...
  • 题目是这样的:给定一个正整数N,1N一共出现过多少个1? 如N=12,则f(12)=5,因为1,2,3,4,5,6,7,8,9,10,11,12共出现5次“1”。 当年第一次看这个题的时候觉得无从下手,这次迅速了思路,还是进步的嘛。 ...

    题目是这样的:给定一个正整数N,从1到N一共出现过多少个1?

    如N=12,则f(12)=5,因为1,2,3,4,5,6,7,8,9,10,11,12共出现5次“1”。

    当年第一次看这个题的时候觉得无从下手,这次到迅速有了思路,还是有进步的嘛。

    思路就是分别统计个位、十位、百位…上的1的数目。先考虑个位上的1的数目,个位上的1是每10个数中会出现1次的,即1-10出现一次,11-20出现一次…因此可以计算N/10,对于N%10的部分,只要N%10>=1,就有一个1,也只能有一个1。同理再考虑十位上的1,十位上的1是每100个数字中会出现10次,如1-100出现10次(10-19),101-200出现10次(110-119)…因此可以计算N/100*10,对于N%100的部分,只有在10-19之间会出现1,因此可以分情况讨论。百位上、千位上的情况依此类推,再举一例,说一下千位上的情况吧,对于千位上的1,是每10000个数里出现1000次,例如1-10000里出现1000次(1000-1999),10001-20000里出现1000次(11000-11999)…因此可以计算N/10000*1000,对于N%10000的部分,只有在1000-1999之间会出现千位上的1,同样分情况讨论之。

    代码如下:

       1:  __int64 func(__int64 N)
       2:  {
       3:      __int64 onesCount = 0;
       4:      __int64 factor = 10;
       5:      __int64 a,b,c;
       6:      do 
       7:      {
       8:          a = N/factor;
       9:          b = N%factor;
      10:          c = a*(factor/10);
      11:   
      12:          onesCount += c;
      13:   
      14:          if (b >= factor/10)
      15:          {
      16:              if (b > 2*(factor/10) - 1)
      17:              {
      18:                  onesCount += factor/10;
      19:              }
      20:              else
      21:              {
      22:                  onesCount += b - (factor/10) + 1;
      23:              }
      24:          }
      25:          factor *= 10;
      26:      } while (a != 0);
      27:   
      28:      return onesCount;
      29:  }

    有一个有意思的现象是,对于N=111…110这样的数,即a个1加一个0组成的数,其f(N)恰好等于连续a个(a+1),如f(1110)=444,f(11111110)=8888888。以f(1110)=444为例,一共有四位,每一位上的一都是111个,因此f(1110)=444。

    扩展问题问到了对于2进制的情况该怎么解答,例如f(11)=100,因为“0,10,11”中共出现了四个1。其实思路是一样的,也是分别考察右侧第一位上出现1的次数、右侧第二位上出现1的次数…以此类推。比如考虑f(11)=f(1011),

    1,10,11,100,101,110,111,1000,1001,1010,1011

    先考虑第一位上的1(第几位一律从右侧数起),第一位上的1是每两个数出现一次,因此可以先计算11/2=5,然后对于11%2=1的部分,由于等于1,因此出现了一次1,因此第一位上共出现了6次1;再考虑第二位,这一位上是每4个数出现2次1,先计算11/4*2=4,对于11%4=3部分,只有在10-11之间会出现2次1,因此第二位上出现6次1;第三位,(11/8*4)+0=4次,第四位,0+(11-7)=4。因此f(1011)=10100=20。代码就不写了吧。


    转自:点击打开链接http://www.sunhongfeng.com/2011/06/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E-2-4-1%E7%9A%84%E6%95%B0%E7%9B%AE-2/


    展开全文
  • 或者求两个整数m和n需要改变m二进制中的多少位才能得到n,可以先做 m^n 的异或运算,然后求这个数有多少个1。 面试题11:数值的整数次方:如果采用常规解法,需要注意的地方:当指数为负数的时候;当底数为零且指数...
  • 现在给定一个字典,用户输入一个单词,如何根据字典找出这个单词有多少个兄弟单词? 3.4.8 找出数组中出现次数超过一半的数,现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。...
  • 集成测试报告模板

    热门讨论 2011-10-25 12:55:59
    序号 发现缺陷数最多的测试用例(按发现的缺陷数少进行排序) 发现的缺陷个数 发现缺陷数最少的测试用例(按发现的缺陷数多进行排序) 发现的缺陷个数 1 2 3 4 5 ...
  • 对于每组数据,输出一个整数,表示机器人一共经过了多少个方格 输入示例: 2 3 U.. .*. 4 4 R... .**. .**. .... 输出示例: 4 12 题目 C(15 分) 问题描述: 在一片 n*m 的土地上,每一块 1*1 的区域里都...
  • 最新Java面试宝典pdf版

    热门讨论 2011-08-31 11:29:22
    37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 24 38、try {}里一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的...
  • Java面试宝典-经典

    2015-03-28 21:44:36
    37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 24 38、try {}里一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的...
  • java面试宝典2012

    2012-12-16 20:43:41
    37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 26 38、try {}里一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 27 39、下面的...
  • 小号每天能接多少个任务是根据平台的任务量分配以及你客户端挂机时间决定,不是我们人为规定,但是淘宝规定:一个淘宝小号一天最多只能收藏别人的宝贝60个(暂定),第2天又可以接着收藏最多60个,一直小号一共...
  • Java面试宝典2012版

    2012-12-03 21:57:42
    37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 24 38、try {}里一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的...
  • 37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 24 38、try {}里一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的...
  • JAVA面试宝典2010

    2011-12-20 16:13:24
    37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 24 38、try {}里一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的...
  • Java面试笔试资料大全

    热门讨论 2011-07-22 14:33:56
    37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 24 38、try {}里一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的...
  • Java面试宝典2012新版

    2012-06-26 19:20:00
    37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 24 38、try {}里一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的...
  • Java面试宝典2010版

    2011-06-27 09:48:27
    37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 38、try {}里一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 39、下面的程序...
  •  能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?      请你利用计算机的优势寻找所有的可能,并回答不同算式的种类。    满足乘法交换律的算式计为不同的种类,所以答案肯定是偶数。    ...
  • 17. 网点面积率10%变化到20%与80%变化到90%,密度变化差别一样吗? 差别很大,后者密度变化大。 18. 密度计如何测量出网点面积率? 测量出网点区域的密度,再根据实地密度计算得到网点面积率。 19. 调幅加网下,...
  • 问题4-22:整个的IEEE 802委员会现在一共有多少个工作组? 问题4-23:在一些文献和教材中,可以见到关于以太网的“前同步码”(preamble)有两种不同的说法。一种说法是:前同步码共8个字节。另一种说法是:前同步码共...

空空如也

空空如也

1 2 3 4
收藏数 61
精华内容 24
关键字:

从8到20一共有多少个数