P1001 A+B Problem

在这里插入图片描述

有理数的加法运算法则:
(1) 同号两数相加,取相同的符号,再计算两数绝对值之和;
(2) 异号两数相加,取绝对值较大数的符号,再用较大的绝对值减去较小的绝对值。

依题意,高精度如下(无注释,可拿走使用):

// Author:PanDaoxi
#include <bits/stdc++.h>
#define int long long
#define endl "\n"

using namespace std;
const int INF = 101;

struct bn{
   
   
	string s, absn;
	int num[INF], len, absLen;
	bool neg;

	void inp(){
   
   
		cin >> s;
		len = s.size();

		neg = (s[0] == '-');
		absn = neg ? s.substr(neg) : s;
		absLen = absn.size();

		for(int i=0; i<absLen; i++){
   
   
			num[i] = absn[absLen-i-1] - '0';
		}
  		return;
	}
} a, b;
int c[INF+1];

char cABS(){
   
   
	if(a.absLen > b.absLen || (a.absLen >= b.absLen && a.absn > b.absn)){
   
   
		return 'a';
	}
	else if(a.absn == b.absn){
   
   
		return '=';
	}
	else{
   
   
		return 'b';
	}
}

void add(){
   
   
	for(int i=0; i<max(a.len, b.len)+1; i++){
   
   
		c[i] += a.num[i] + b.num[i];
		c[i+1] 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值