高精度除以整数

描述

现在给你一个简单的问题,给你两个非负整数A和B,你需要计算出A除以B的结果。不过要注意哦,这里的A非常大,B在int范围内。大到老师提醒你们需要使用高精度来做。

输入条件

输入两个非负整数A和B,A的位数不超过10000,B在int范围内,数据不保证A>=B。

输入样例 1 

123456789 45

输出条件

输出A除B的商和余数。

输出样例 1

2743484 9

核心思路

高精度计算可以用数组来代替数据,当数据超过long long 的时候,用int型的数组可以解决数据过大问题,更多可参考往期大数阶乘,首先怎么去将接受的字符串转化为数组,废话不多说代码如下

	for(Alength; A[Alength]!='\0'; Alength++) {
		a[Alength+1]=A[Alength]-'0';
	}

减去对应的ASCII码值即可,a为int型。\0是字符串的结束标志。

运用小学学过的除法,灵活的运用数组,建立c数组来存储商,temp来接受每次的余数。这里要明白一点,每一除法从第一位开始,比如4321÷21,首先用4/21=0,则c[1]=0,temp=4%21=4。下一次用temp*10+3来除以21。c[2]=43/21=2,余数temp=43%21=1...........如此下去即可。

最后怎么去输出c[]数组,主要是比如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值