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

C++ 优化:解决小明 a+b 练习抽题正确率计算代码的改进方案

```cpp #include <iostream> #include <iomanip> int gcd(int a, int b) { if (b == 0) { return a; } return gcd(b, a % b); } int main() { int k; std::cin >> k; while (k--) { int n, m; std::cin >> n >> m; // 计算组合数C(n, m) long long numerator = 1, denominator = 1; for (int i = 0; i < m; ++i) { numerator *= (n - i); denominator *= (i + 1); int g = gcd(numerator, denominator); numerator /= g; denominator /= g; } // 计算抽到的三题都正确的概率 long double probability = (long double)(numerator * numerator) / (denominator * denominator * denominator); if (probability == 1.0 || probability == 0.0) { std::cout << std::fixed << std::setprecision(0) << probability << std::endl; } else { std::cout << numerator << "/" << denominator * denominator << std::endl; } } return 0; } ``` 改进建议: 1. 使用更具表达性的变量名以提高代码可读性。 2. 将计算组合数的部分提取成一个单独的函数,以提高代码的模块化和复用性。 3. 考虑在计算组合数时,使用动态规划来优化计算速度。 ######[AI写代码神器 | 793点数解答 | 2024-12-27 17:57:22]

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