zoukankan      html  css  js  c++  java
  • 【2012 百度之星 / 初赛第一场 B:小小度刷礼品】

    B:小小度刷礼品

    时间限制: 
    1000ms
     
    内存限制: 
    65536kB
    描述

    一年一度的百度之星又开始了,这次参赛人数创下了吉尼斯世界纪录,于是百度之星决定奖励一部分人:所有资格赛提交ID以x结尾的参赛选手将得到精美礼品一份。

    小小度同学非常想得到这份礼品,于是他就连续狂交了很多次,提交ID从a连续到b,他想问问你他能得到多少份礼品,你能帮帮他吗?

    输入
    第一行一个正整数T表示数据组数;
    接下来T行,每行三个不含多余前置零的整数x,a,b (0 <=x <= 10^18, 1 <= a,b <= 10^18,a <= b)
    输出
    T行,每行为对应的数据情况下,小小度得到的礼品数
    样例输入
    1
    88888 88888 88888
    
    样例输出

    1

     1 #include <iostream>
     2 using namespace std;
     3 
     4 //////////////////////////////////////////////////////////
     5 // int CCalBit (int k)
     6 int CCalBit(int k)
     7 {
     8     int count = 0;
     9     while ( k )
    10     {
    11         count++;
    12         k = k / 10;
    13     }
    14     
    15     return count;
    16 }
    17 
    18 //////////////////////////////////////////////////////////
    19 // int CPowerTen(int k)
    20 int CPowerTen(int k)
    21 {
    22     int sum = 1;
    23     while ( k-- )
    24     {
    25         sum *= 10;
    26     }
    27     
    28     return sum;
    29 }
    30 
    31 //////////////////////////////////////////////////////////
    32 // int CCalLeftStarter(int x, int num)
    33 int CCalLeftStarter(int x, int num)
    34 {
    35     int result = num / CPowerTen(CCalBit(x));
    36     
    37     int temp = num % CPowerTen( CCalBit(x) );
    38     
    39     if (temp > x)
    40     {
    41         result++;
    42     }
    43     
    44     return result;
    45 }
    46 
    47 //////////////////////////////////////////////////////////
    48 // int CCalRightEnder(int x, int num)
    49 int CCalRightEnder(int x, int num)
    50 {
    51     int result = num / CPowerTen(CCalBit(x));
    52     
    53     int temp   = num % CPowerTen(CCalBit(x));
    54     
    55     if (temp < x)
    56     {
    57         result--;
    58     }
    59     
    60     return result;
    61 }
    62 
    63 int main()
    64 {
    65     int t;
    66     cin >> t;
    67     while ( t-- )
    68     {
    69         int x, a, b;
    70         // input data
    71         cin >> x >> a >> b;
    72         
    73         // process it 
    74         int left_starter;
    75             left_starter = CCalLeftStarter(x, a);
    76         int right_ender;
    77             right_ender = CCalRightEnder  (x, b);
    78             
    79         int result = right_ender - left_starter + 1;
    80         
    81         if (result < 0)
    82         {
    83             result = 0;
    84         }
    85         
    86         cout << result << endl;
    87         // output for test
    88         
    89     }
    90     
    91     return 0;
    92 }
    93 
    94 // end 
    95 // ism 
  • 相关阅读:
    认识 liunx 文件属性
    laravel 配置mongodb 出现 Database [text] not configured 问题【已解决】
    php 判断字符串的长度的两种方法
    php 循环里面套sql怎么解决
    php 给入门新手们填的第一个坑
    Vue 调用其他Vue或自己Vue中的方法时,this指向不生效
    绑定点击事件触发多次
    computed 计算属性的获取和设置
    el-Cascader 最后一项删不掉
    前端 --- 格式化的配置
  • 原文地址:https://www.cnblogs.com/ismdeep/p/2531728.html
Copyright © 2011-2022 走看看