怎样勇C语言编一个大数除法程序

怎样勇C语言编一个大数除法程序,第1张

在超高精度算法中,最难的就是除法了。(乘法,加法,减法,都要会)

模拟人工算法吧(大数都采用字符数组!)

做除法运算,首先至少要会乘法。

123456789*5

运算如下:

9*5=5进4,5*8=0 加个位进位4 进4,以此类推

大数之间的比较,也要会,这个简单就不说了,如果这个也不会,那我没办法说下去了!

除法如下:

把数字当放入字符数组....

假设:17346777412563/2365489

2365489(7位)

1734677(7位)

使用字符数组比较,如果是小于,那么采用17346777(8位)

一.然后2365489*9=的结果跟17346777,如果大于就2365489*8....依次类推直到小于。求得结果的第一位了。

然后17346777-2365489*x=余数跟(17346777后一位)4组合,看是否大于2365489,大于就

进入一步骤方式运算。小于的话,结果的第二位就是0。

大致思路讲了,只要中间思路分析清楚,基本上不会有多大问题。总之,模拟人工。

这样的话,不管多大的数字之间的除法都OK的!

思路不懂可以来问我,如果,要我写代码,就别找我了

#include "stdio.h"

#include "math.h"

void main(void)

{

int a,b,c,d,e,g

float f

printf("int a,b")

scanf("%d %d",&a,&b)

c=a+b

d=a-b

e=a*b

f=a/(float)b

g=a%b

printf("c=%d\n d=%d\n e=%d\n f=%f\n g=%d\n",c,d,e,f,g)

}

整数除整数得到的一定是整数,这个和c语言中的自动类型转换有关,按照我上面写的,把b强制转换成浮点型,这样得到的结果就是浮点型,还有输出浮点型数时用 %f 。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11629910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存