2397 - 高精度减法3

处理两个高精度数的减法。(1000位内)

输入

两行,每行一个整数。(可能为负数,负号用“-”表示)

输出

一个整数,即两个数相减的结果。

样例

输入

2345678901234
123456789012345

输出

-121111110111111

提示

注意:输入的数可能是负数!

#include<iostream>
#include<cstring>
using namespace std;

string s1, s2;
int k, t, w, len, a[1005], b[1005], c[1005];

void rev(string x, string y)
{
	//将字符串x逆序转换保存在int数组a中 
	for(int i = 0; i < x.size(); i++)
	{ 
	
	}
	//将字符串y逆序转换保存在int数组b中 
	for(int i = 0; i < y.size(); i++)
	{
		
	}	
}

void add(string x, string y)
{
	//加法:
	//加法不用比较x和y的大小,直接逆序转换到int数组a和b中 
	rev(x, y);
	//因为不知道x与y的大小,所以取两者较长的长度为计算的次数 
	len = x.size() > y.size() ? x.size() : y.size();
	//做加法计算:x+y 
	{
		
	}
}

void sub(string x, string y)
{
	//减法:
	//先判断x和y的大小,如果x小于y,则交换x和y
			//如果没有交换,则结果必为正数,用t = 0记
			//如果有交换,则结果必为负数,用t = 1记 
	{
		
	}
	
	//将字符串x和y,逆序转换之后存入int数组a和b中 
	rev(x, y);
	//以为已经比较过大小,做过交换,所以x肯定大于y,所以计算的次数取x的长度次 
	len = x.size();
	//做减法计算:x-y 
	{
		
	}
	
}

int main()
{
	cin >> s1 >> s2;
	//如果s1为负数:
	//如果s2也为负数:如-3-(-2),可以化简为:-(3-2),
			//即记下有一个负号(如用k = 1),然后去掉s1和s2的负号,然后做减法(s1-s2)
			//减法(s1-s2)的值,可能为正,也可能为负,用t = 0记正,用t = 1记负。
	//如果s2为正数:如-3-2,可以化简为:-(3+2),
			//记下有一个负号(如用k = 1),然后去掉s1的负号,然后做加法(s1+s2)
	if(s1[0] == '-')  
	{
		
	}
	//如果s1为正数:
	//如果s2为负数:如3-(-2),可以化简为:3+2,
			//即:去掉s2的负号,然后做加法(s1+s2)
	//如果s2为正数:如3-2,直接做减法(s1-s2) ,用t = 0记正,用t = 1记负。 
	else
	{
		
	}
	//做完运算之后,判断k与t的值,确定最后的结果为正或为负(即确定最后要不要输出负号) 
	//去除前导零,输出结果。 
	//输出
	{ 
	
	}	
	return 0;	
}

来源

奇遇编程

题目参数

时间限制 1 秒
内存限制 32 MB
提交次数 0
通过人数 0
统计

上一题 下一题