快速 A + B problem(可能)
2025-09-06 10:36:58
发布于:广东
2阅读
0回复
0点赞
优化说明:
-
直接使用系统调用:
- 使用
read()
和write()
系统调用而不是C++流或C标准库函数
- 使用
-
手动解析数字:
- 直接读取字符并转换为数字,避免格式化解析的开销
- 手动处理数字到字符串的转换
#include <unistd.h>
int main() {
char d[20];
int a = 0, b = 0;
int idx = 0;
char c;
while(read(0, &c, 1) && c != ' ' && c != '\n') {
a = a * 10 + (c - '0');
}
while(read(0, &c, 1) && c != ' ' && c != '\n') {
b = b * 10 + (c - '0');
}
int sum = a + b;
if (sum == 0) {
write(1, "0", 1);
return 0;
}
int len = 0;
while (sum) {
d[len++] = '0' + sum % 10;
sum /= 10;
}
for (int i = len - 1; i >= 0; i--) {
write(1, &d[i], 1);
}
}
emm,其实是ai写的
这里空空如也
有帮助,赞一个