top1编程
← 返回题目
题解

【入门】寻找雷劈数

1 条题解

  • 0
    @ 2026-7-30 0:48:34

    解题思路

    枚举所有四位数。把四位数分成前两位 ab 和后两位 cd,如果 (ab+cd) 的平方等于原数,就输出它。按从小到大枚举,自然就是升序。

    参考代码

    // 读取题目给出的数据。
    // 按照题意完成计算。
    #include <iostream>
    using namespace std;
    
    int main() {
        for (int n = 1000; n <= 9999; n++) {
            int a = n / 100;
            int b = n % 100;
            int s = a + b;
    
            // 判断前两位和后两位的和的平方
            if (s * s == n) {
                cout << n << endl;
            }
        }
        return 0;
    }
    

    复杂度分析

    这道题最多只进行有限次数的循环,时间复杂度为 O(n);代码只使用了几个变量,空间复杂度为 O(1)。

    • 1