#4051. [GESP202503 七级 C++] 第 8 题

[GESP202503 七级 C++] 第 8 题

2025 是个神奇的数字,因为它是由两个数 2025 拼接而成,而且 2025=(20+25)22025 = (20 + 25)^2。小杨决定写个程序找找小于 NN 的正整数中共有多少这样神奇的数字。下面程序横线处应填入的是( )。

#include <string>
int count_miracle(int N) {
    int cnt = 0;
    for (int n = 1; n * n < N; n++) {
        int n2 = n * n;
        std::string s = std::to_string(n2);
        for (int i = 1; i < s.length(); i++)
            if (s[i] != '0') {
                std::string sl = s.substr(0, i);
                std::string sr = s.substr(i);
                int nl = std::stoi(sl);
                int nr = std::stoi(sr);
                if (_________) // 在此处填入选项
                    cnt++;
            }
    }
    return cnt;
}

{{ select(1) }}

  • nl + nr == n
  • nl + nr == n2
  • (nl + nr) * (nl + nr) == n
  • (nl + nr) ^ 2 == n2