统计小于N的神奇数字的C++程序的时间复杂度为?

ap653000 单选题 共 个子题

2025是个神奇的数字,因为它是由两个数20和25拼接而成,而且$2025=(20+25)^2$。小杨决定写个程序找找小于N的正整数中共有多少这样神奇的数字。该函数的时间复杂度为( )。

#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;
}
A

$O(N\log N)$

B

$O(\sqrt{N})$

C

$O(\sqrt{N}\log N)$

D

$O(\sqrt{N}(\log N)^2)$

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧