大整数加法C++

基础补充

  1. max

    • std::max 是一个函数模板,用来返回两个值中较大的一个。它定义在 <algorithm> 头文件中。
  2. insert

    • std::string::insertstd::string 类的一个成员函数,用于在字符串中的指定位置插入字符或另一个字符串。
  3. push_back()

    • std::string::push_backstd::string 类的一个成员函数,用于在字符串的末尾添加一个字符。
  4. reserve

    • std::string::reservestd::string 类的一个成员函数,用于预留足够的容量以存储指定数量的字符,以避免后续操作中多次重新分配内存。
  5. find_last_not_of

    • std::string::find_last_not_ofstd::string 类的一个成员函数,用于从字符串的末尾开始查找不匹配指定字符的位置。
  6. 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){
   
   
	//确只s1比s2大 
	if(strlen(s1)>strlen(s2)) 
		return add(s2,s1,buf);
	//进位标志 
	int carry_flag=0;
	char* p=s1;
	char* q
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值