F. 倍增数

    传统题 1000ms 256MiB

倍增数

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“赛后递交”以递交本题。

题目描述

小Z最近在数学课上学习了一种有趣的数字——倍增数。倍增数的定义如下:

  1. 它是一个正整数,没有前导零。
  2. 它的位数 dd 是偶数(即 d=2kd = 2k,其中 k1k \geq 1)。
  3. 将数字分成前后两半,每半部分 kk 位。
  4. 后半部分的每一位数字恰好是前半部分对应位置数字乘以 22 后取个位数(即模 1010 的结果)。

例如:

  • 1212 是倍增数:前半部分 11,后半部分 22,且 1×2=21 \times 2 = 2
  • 5050 是倍增数:前半部分 55,后半部分 00,且 5×2=1005 \times 2 = 10 \rightarrow 0(取个位)。

现在给定一个正整数 nn,请帮助小Z统计在区间 [1,n][1, n] 中有多少个这样的倍增数。

输入格式

输入一个正整数 nn

输出格式

输出一个整数,表示区间 [1,n][1, n] 中倍增数的个数。

输入输出样例

12

出样例 #1\tt \#1说明

[1,12][1, 12] 范围内:

  • 1212 是倍增数(1×2=21 \times 2 = 2
  • 2424 大于 1212,不计入
  • 结果为 11
1
50
5

样例 #2\tt \#2说明

[1,50][1, 50] 范围内:

  • 12121×2=21 \times 2 = 2
  • 24242×2=42 \times 2 = 4
  • 36363×2=63 \times 2 = 6
  • 48484×2=84 \times 2 = 8
  • 50505×2=1005 \times 2 = 10 \rightarrow 0
  • 结果为 55
4321
42

数据范围

  • 对于 30%30\% 的数据, 1n1031 \leq n \leq 10^{3}
  • 对于 80%80\% 的数据,1n10121 \leq n \leq 10^{12}
  • 对于 100%100\% 的数据,1n10201 \leq n \leq 10^{20}

【AC-001-Div3】语法组月赛 || Round · 1

未参加
状态
已结束
规则
OI
题目
6
开始于
2025-6-14 0:00
结束于
2025-6-16 0:00
持续时间
3 小时
主持人
参赛人数
155