酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

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]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]