[1]探讨AI的C++风(以 DeepSeek R1为例)
取得代码
用户: 你好,我想写一篇文章"探讨AI的C++风(以 DeepSeek R1为例)",请你用C++写一个A+B高精的代码。
AI:
高精度加法 A+B 代码实现
#include <iostream> #include <string> #include <algorithm> #include <vector> using namespace std; string addStrings(const string& a, const string& b) { string s1 = a; string s2 = b; reverse(s1.begin(), s1.end()); reverse(s2.begin(), s2.end()); vector<int> res; int carry = 0; for (int i = 0; i < max(s1.size(), s2.size()); ++i) { int n1 = (i < s1.size()) ? (s1[i] - '0') : 0; int n2 = (i < s2.size()) ? (s2[i] - '0') : 0; int sum = n1 + n2 + carry; res.push_back(sum % 10); carry = sum / 10; } if (carry) res.push_back(carry); reverse(res.begin(), res.end()); ostringstream oss; for (int num : res) { oss << num; } return oss.str(); } int main() { string a, b; cin >> a >> b; cout << addStrings(a, b) << endl; return 0; }
人工分析
1. 头文件偏好
AI 更偏向其他头文件,而不是 bits/stdc++.h ,如本次示例代码。
经过 \(6\) 道题的实验(我保证没有提交),我发现AI优先使用 <algorithm> 、<vector> 、 <string> 等现代C++库。
2. 函数封装
经观察, AI 通常会使用长但易懂的函数、变量名,如 addStrings 、 Bigintadd 、 Sumadd 等。
AI 通常会将核心逻辑封装为独立函数(如 addStrings )
3. 字符串处理
通过了解,AI 100%使用 reverse() 函数进行处理字符串顺序。
4. 容器使用
我发现, AI 特别喜欢用 vector ,原则就是:能用 vector ,绝不用数组。
5. 编码风格
AI 通常会把大括号跟在函数后面,而不是换行,如:
int main(){
return 0;
}
另,AI 一般不会在核心函数中输出(cout) ,一般都是用 ostringstream 或 stringstream 保存下来,在主函数中输出。
总结
| 特征项 | AI生成代码 | 人工优化代码 |
|---|---|---|
| 异常处理 | 通常没考虑到 | 会增加合法性校验 |
| 性能优化 | 基础实现 | 可能预分配内存 |
| 注释 | 几乎没有 | 通常有注释 |
| 模板使用 | 较少 | 可能用模板 |
最后,祝愿管理大大可以通过本文揪出在比赛中使用 AI 作弊的人

评论区打出下期的推荐内容,我们会随机选一个哦!
本文来自博客园,作者:[GuiHua],转载请注明原文链接:https://www.cnblogs.com/pcworld/articles/18768378

浙公网安备 33010602011771号