栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

大数相减 (高精度减法)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

大数相减 (高精度减法)

满足所有数据为非负整数

需要知识点:vector

代码如下:

#include
#include
using namespace std;

// 判断a和b的大小,把大的放前面  
bool cmp(vector a,vector b)
{
	if(a.size()!=b.size())
		return a.size()>b.size();
	for(int i=a.size()-1;i>=0;i--)
		if(a[i]!=b[i])
			return a[i]>b[i];
	return true;
}

// 运算 c=a-b  
vector sub(vector &a,vector &b)// 接受容器,并返回容器  
{
	vectorc;
	int t=0;
	for(int i=0;i1&&c.back()==0)
		c.pop_back();
	return c;
}

int main()
{
	vectora,b;
	string n,m;
	cin>>n>>m;
	
	// 个位在前面 
	for(int i=n.size()-1;i>=0;i--)
		a.push_back(n[i]-'0');
	for(int i=m.size()-1;i>=0;i--)
		b.push_back(m[i]-'0');
	
	// 保证大的在前面  
	if(cmp(a,b))
	{
		vector c=sub(a,b);
		for(int i=c.size()-1;i>=0;i--)	cout< c=sub(b,a);
		printf("-");
		for(int i=c.size()-1;i>=0;i--)	cout< 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/699390.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号