美文网首页
编程笔试-美丽的数字

编程笔试-美丽的数字

作者: 飞机大河马 | 来源:发表于2018-10-10 07:23 被阅读0次

题目

小A有两个幸运数字字符a和b。他认为一个数很美当且仅当这个数字只包含字符a和b,且这个数字没位数字之和也只包含数字字符a和b。例如:幸运数字字符为1和2,那么11就很美,其每位数字之和为2,11和2都只含有数字字符1和2,。但是12、21、111都不美,虽然它们本身都只含有数字字符1和2,但它们的每位数字之和都为3,而3不是幸运数字字符。
现在小A想知道对于所有的k位数字,有多少个美丽的数字?

输入描述

一行包含3个数字,a、b和k,其中1\leq a,b\leq 9
对于10%的数据:1\leq k\leq 10
对于20%的数据:1\leq k\leq 10^3
对于100%的数据:1\leq k\leq 10^6

输出描述

一行包含一个数字,即美丽的数字个数。由于答案可能很大,请对1000000007(10^9+7)取模。

解题思路

思路一:暴力法

枚举所有的k位数字,判断是否为美丽的数字,得到所有符合条件的解的个数.

思路二:组合法

已知k位数字只包含数字字符a和b,根据题意可知,一个数字是否美丽只和其包含a和b的个数有关,因此可以先判断出包含m个a字符的数字是否为美丽的数字,其中m=0,...,k。得到相应的m_1,m_2,...,m_L。最终美丽的数字个数为C=C_{n}^{m_1}+...+C_{n}^{m_L}

示例代码

import math

k = 2
digit_a = 1
digit_b = 2
result = 0


def c(n, r):
    f = math.factorial
    return f(n) // f(r) // f(n - r)


def is_beautiful(number, a, b):
    if number == 0:
        return False
    while number != 0:
        digit = number % 10
        if digit != a and digit != b:
            return False
        number //= 10
    return True


for i in range(k + 1):
    temp = i * digit_a + (k - i) * digit_b
    if is_beautiful(temp, digit_a, digit_b):
        result += c(k, i)
result = result % 1000000007
print(result)

相关文章

  • 编程笔试-美丽的数字

    题目 小A有两个幸运数字字符a和b。他认为一个数很美当且仅当这个数字只包含字符a和b,且这个数字没位数字之和也只包...

  • Synchronized到底锁住的是谁?

    先来一道并发编程笔试题 题目:利用5个线程并发执行,num数字累计计数到10000,并打印。 这道并发编程面试题,...

  • 数字IC笔试

    1.什么是亚稳态吗,怎么解决 亚稳态:时钟有效沿到来时,被采的数据处于变化当中,输出的数据不是稳定的 解决方案a....

  • 京东2018校招编程题解答(Java)

    写在前面 本篇博客主要是解答这次校招中京东的笔试编程题,这次京东的笔试编程题比较难,涉及KMP算法、manache...

  • 笔试编程

    IDE问题:vs2015 :bool *visited = new bool[N]; 初始化为true; 牛客/l...

  • 2017年校招全国统一模拟笔试(第五场)编程题集合

    2017年校招全国统一模拟笔试(第五场)编程题集合 地址:2017年校招全国统一模拟笔试(第五场)编程题集合 偶串...

  • 2020深信服实习笔试+一面

    笔试 第一次笔试是深信服的实习笔试,整套题25道多选题,3道编程题(已存在Promise实现Promise.all...

  • 2017年校招全国统一模拟笔试(第三场)编程题集合

    2017年校招全国统一模拟笔试(第三场)编程题集合 地址:2017年校招全国统一模拟笔试(第三场)编程题集合 变换...

  • 打印水仙花数

    今天面试,笔试中遇到一个编程题,要求打印出所有的水仙花数,所谓水仙花数是指一个 3 位数,它的每个位上的数字的 3...

  • 富士康面试经验

    1、笔试 智力+英语+笔试 智力:数字规律、图形规律、逻辑判断、文字读取 英语:单选、完型、阅读、句子理解 2、面...

网友评论

      本文标题:编程笔试-美丽的数字

      本文链接:https://www.haomeiwen.com/subject/zkbuaftx.html