基础补充
-
max
:
std::max
是一个函数模板,用来返回两个值中较大的一个。它定义在 <algorithm>
头文件中。
-
insert
:
std::string::insert
是 std::string
类的一个成员函数,用于在字符串中的指定位置插入字符或另一个字符串。
-
push_back()
:
std::string::push_back
是 std::string
类的一个成员函数,用于在字符串的末尾添加一个字符。
-
reserve
:
std::string::reserve
是 std::string
类的一个成员函数,用于预留足够的容量以存储指定数量的字符,以避免后续操作中多次重新分配内存。
-
find_last_not_of
:
std::string::find_last_not_of
是 std::string
类的一个成员函数,用于从字符串的末尾开始查找不匹配指定字符的位置。
-
string(ans.rbegin(),ans.rend())
:
- 这是一个构造
std::string
对象的表达式,它使用 std::string
的范围构造函数,从 ans.rbegin()
(ans
的反向迭代器的开始)到 ans.rend()
(ans
的反向迭代器的结束)创建一个新的字符串。这实际上会反转字符串 ans
。
方法(先倒序后相加)
- 小的数在前,大数在后
- 加数、被加数进行翻转,从低位开始加起,因为数组是从0位开始,与正常手工加法不同。
- 设置进位符carry_flag
- 先对小的数进行控制,做加法
- 再对大的数剩下的部分,做加法
代码
#include<iostream>
#include<cstring>
using namespace std;
int add(char* s1,char* s2,char* buf){
if(strlen(s1)>strlen(s2))
return add(s2,s1,buf);
int carry_flag=0;
char* p=s1;
char* q