1922. Count Good Numbers

一个数字字符串被认为是良好的,如果偶数位置的数字是偶数,而奇数位置的数字是素数(2, 3, 5, 或 7)。例如,'2582' 是好的,因为偶数位置的数字(2 和 8)是偶数,奇数位置的数字(5 和 2)是素数。然而,'3245' 不是好的,因为在偶数位置的数字3不是偶数。给定一个整数 n,返回长度为 n 的良好数字字符串的总数,结果对 10^9 + 7 取模。" 113536425,10542453,VSCode小霸王:打造你的游戏插件,"['VSCode插件', 'nes游戏', '开发教程']
摘要由CSDN通过智能技术生成

A digit string is good if the digits (0-indexed) at even indices are even and the digits at odd indices are prime (2, 3, 5, or 7).

For example, “2582” is good because the digits (2 and 8) at even positions are even and the digits (5 and 2) at odd positions are prime. However, “3245” is not good because 3 is at an even index but is not even.
Given an integer n, return the total number of good digit strings of length n. Since the answer may be large, return it modulo 109 + 7.

A digit string is a string consisting of digits 0 through 9 that may contain leading zeros.

Example 1:

Input: n = 1
Output: 5

Explanation: The good numbers of length 1 are “0”, “2”, “4”, “6”, “8”.

Example 2:

Input: n = 4
Output: 400

Example 3:

Input: n = 50
Output: 564908303

Constraints:

  • 1 <= n <= 1015

n 小于 10 的 15 次方, 所以 O(n)的方法就不用考虑了, 要往 O(logn)方向去想, 我们先来列一下前几个位数和数量的关系

1: 5
2: 20
3: 100
4: 400
5: 2000
6: 8000
7: 40000
8: 160000

其实这个过程就是重复 ×4 和 ×5 的过程(偶数位有 0, 2, 4, 6, 8 可选, 奇数位有

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值