高精度的减法

一,着力点:负数

思想:模板的套用变化

交换数组的内容;

二,方法:交换的方法

字符型数组的交换——strcmp;

三,布尔判断特大字符串的数

思路:先判断长度然后判断大小

	bool compare(char str1[],char str2[])
	{
		if(strlen(str1)!=strlen(str2))return strlen(str1)>strlen(str2);
		for(int i=0;i<strlen(str1);i++)
		{
			if(str1[i]!=str2[i])return str1[i]>str2[i];
		}
		return true;
	}

四,核心代码

for(int i=1;i<=lenc;i++)
	{
		if(a[i]-b[i]<0)
		{
			a[i]+=10;
			a[i+1]--;
		}
		c[i]=a[i]-b[i];
	}

五,扫零操作

while(c[lenc]==0&&lc>1)lc--

0000000001;012;00000034;这种数都是不太需要的;

板块二:常见的错误

函数的声明:bool cmp(str1[ ],str2[ ])是不可以的

要说明bool cmp(char str1[],char str2[])

数组的定义

位置:如果有调用的必要比如递归和模拟的话是必须要写到外面的,一方面可以不用写参数;一反面数组干净没有杂质。

转存的错误

char转到int 中的错误

正常的做法

	int lena=strlen(str1);
	int lenb=strlen(str2);
	for(int i=0;i<lena;i++)
	a[lena-i]=str1[i]-'0';//
	for(int i=0;i<lenb;i++)
	b[lenb-i]=str2[i]-'0';

错误的写法 漏掉了-‘0’

int lena=strlen(str1);
	int lenb=strlen(str2);
	for(int i=0;i<lena;i++)
	a[lena-i]=str1[i];//
	for(int i=0;i<lenb;i++)
	b[lenb-i]=str2[i];

特大奇葩问题——if中有&&‘=’直接给我变成赋值操作了,不报错了!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值