题解:#9079.满足函数值相等的数字对计数 审核通过

Wind_Rises 砂糖老师 2025-07-22 13:21:27 4

💡 题解:拼接等式 G(A, B) = F(A, B)

🧩 题目回顾

我们要求在给定整数范围 , 的前提下,统计满足以下等式的整数对 的个数:

其中:

  • 表示将 A 和 B 拼接起来形成的新整数(如

🧮 数学推导

我们来推导出这个条件成立的充要条件。

🧱 表达 G(A, B)

设 B 是一个 d 位整数,则拼接公式为:

🔍 展开 F(A, B)

📐 带入等式:

两边减去 B:


✅ 推导结论

由上式推出:

满足等式的 B 必须是形如:9, 99, 999, 9999, ... 的数 与 A 的取值无关

这意味着:

  • B 是所有位都为 9 的数字

我们将这些数称为“全 9 数”。


📊 答案计算方法

对于每个合法的 B:

  • 可以配对所有
  • 共计 n 个合法 A

设这样的 B 的个数为 s,则答案为:

其中 s 是满足 的个数。


🧠 实现思路

#include <bits/stdc++.h>
using namespace std;

int main() {
    long long n, m;
    cin >> n >> m;
    long long s = 0;
    for (long long i = 9; i <= m; i = i * 10 + 9) {
        s++;  // 统计合法的“全9数”个数
    }
    cout << n * s << endl;  // 每个全9的B都可配对n个A
    return 0;
}
{{ vote && vote.total.up }}