C++ 求两位数位平方和等于自身的个数
这是一个简单的C++题目,要求找出所有“**每位数字的平方和等于该数本身**”的两位数,并输出符合条件的数的总数。 ## 📝 解题思路 我们需要遍历 **10 到 99** 的所有两位数,逐一判断其十位数和个位数的平方和是否等于该数本身。 - **十位数**:`num / 10` - **个位数**:`num % 10` - **条件**:`(十位数)^2 + (个位数)^2 == num` 符合条件的数统计个数,最后输出总数。 ## 💻 C++ 代码实现 ```cpp #include <iostream> using namespace std; int main() { int count = 0; // 遍历所有两位数 for (int i = 10; i <= 99; i++) { int tens = i / 10; // 十位 int units = i % 10; // 个位 // 判断平方和是否等于自身 if (tens * tens + units * units == i) { count++; // 符合条件的数加1 } } // 输出总数 cout << count << endl; return 0; } ``` ## 🔍 代码说明 - **循环**:`for (int i = 10; i <= 99; i++)` 遍历所有两位数。 - **位分解**: - `i / 10` 获取十位数字 - `i % 10` 获取个位数字 - **条件判断**:`tens * tens + units * units == i` - **计数器**:`count` 记录符合条件的数量。 - **输出**:打印 `count`,若没有符合条件的数,则为 `0`。 ## ⚙️ 复杂度分析 - **时间复杂度**:O(1),因为只循环了 90 次(常数级别)。 - **空间复杂度**:O(1),只使用了几个整数变量。 ## 💡 扩展思考 - 如果将题目扩展到 **三位数**(100~999),逻辑类似,只需分解百位、十位、个位即可。 - 这种数在数学上称为 **自幂数**(n 位数的每位 n 次方和等于自身),两位数中只有少数几个甚至没有,本题结果实际上是 **0**。 --- ######[AI写代码神器 | 526点数解答 | 2026-06-07 13:59:26]
- 用 JS 代码巧妙判断 a 与 b 关系:输出对应结果 ( | 47点数解答 | 2024-05-20 22:10:14)352
- 体育课同学体力值平衡划分:利用前缀和高效解题(DeepSeek | 692点数解答 | 2025-06-18 19:19:39)200
- Python 实现:根据甜度值为甜甜圈评定等级(字节豆包 | 243点数解答 | 2025-12-06 18:35:50)105
- Java实现:根据输入的三个浮点数求解一元二次方程根的判别与输出(字节豆包 | 329点数解答 | 2025-12-10 22:05:16)72
- 星际编码大赛终极对决:机械星AI与异星人激战“逆序对”统计难题(字节豆包 | 509点数解答 | 2025-04-19 17:33:00)304
- C++实现戴夫后院抵御僵尸的植物选择策略(DeepSeek | 773点数解答 | 2026-01-19 19:20:57)74
- 高效计算逆序对:归并排序分治法详解与Python实现(阿里通义 | 1144点数解答 | 2026-03-18 17:49:11)62
- 解决 P2216 第 x 个数问题的 C++ 代码实现(字节豆包 | 368点数解答 | 2026-03-27 21:15:43)60
- Python 解决:最少操作次数使 n 个数和为指定值(字节豆包 | 137点数解答 | 2024-10-11 19:29:21)359
- Python 代码破解:计算未知量更开心数对个数(字节豆包 | 226点数解答 | 2024-11-02 15:47:11)167
- C++ 实现:计算未知量比较中更开心整数数对的个数(字节豆包 | 270点数解答 | 2024-11-02 15:47:30)212
- C++ 利用栈求解唯一路径迷宫:从起点 (1,1) 到终点 (m - 2,n - 2)(阿里通义 | 732点数解答 | 2024-11-03 02:34:53)542