zoukankan      html  css  js  c++  java
  • 爱奇艺2017秋招笔试(C++智能设备方向)

    虽然有方向,但是好像题目都是随机题库抽取。

    选择题都很基础。。。挖坑,待更新

    编程:

    一、 奇异数:

    如果一个数字满足以下条件,我们就称它为奇异数:

    1.   这个数字至少有两位

    2. 这个数的最低两位是相同的

    比如: 1488是一个奇异数,而3、 112 不是。

    牛牛现在给出一个区间[L, R], 让你计算出在区间内有多少个奇异数

    输入描述:

    输入包括两个正整数L和R(1<= L <= R <= 10^12),以空格分割。

    输出描述:

    输出一个正整数,即区间内奇异数的个数。

    思路:最直接的想法是暴力,直接对区间内的每个数进行判断,不过只能

    通过30%的case。所以要想办法优化,

    参考别人的一种想法是:只对一个数进行判断。即o(1)的时间,这就要求找出

    奇异数的规律。首先,以100为分界线,一部分分为:一个数除100后,有多少个100,就乘以10,因为

    100之内奇异数有10个。

    然后另一部分 是模100后的余数,要进行判断。

    比如1134这个数,  1134 /100 = 11,说明有  11个100,   11*10 = 110,

                                   而 1134 % 100 = 34.     34 又 分为两部分   11 、22  和 34

    贴代码:

    #include<bits/stdc++.h>
    using namespace std;
    
    typedef long long ll;
    ll computer(ll n){
        ll temp = n;
        ll count = 0;
        if (temp < 101){
            temp = (n / 10) % 10;
            count = temp - 1;
            if (n % 10 >= temp){
                count ++;
            }
        }
        return count;
    }
    ll qiyi(ll n){
        return computer(n % 100) + 10*(n / 100);
    }
    
    int main() {
        ll L,R;
        cin >> L >> R;
        cout << (qiyi(R)-qiyi(L-1))<<endl;
        return 0;
    }
    

      

  • 相关阅读:
    light oj 1105 规律
    light oj 1071 dp(吃金币升级版)
    light oj 1084 线性dp
    light oj 1079 01背包
    light oj 1068 数位dp
    light oj 1219 树上贪心
    light oj 1057 状压dp TSP
    light oj 1037 状压dp
    矩阵快速幂3 k*n铺方格
    矩阵快速幂2 3*n铺方格
  • 原文地址:https://www.cnblogs.com/simplepaul/p/7503497.html
Copyright © 2011-2022 走看看