社区
C语言
帖子详情
求大数除法算法
zhouhui915
2011-03-18 08:01:15
大家有没有好的求大数除法的方法,思路。
...全文
428
9
打赏
收藏
求大数除法算法
大家有没有好的求大数除法的方法,思路。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
太乙
2011-03-18
打赏
举报
回复
[Quote=引用 7 楼 zhouhui915 的回复:]
我做的是用两个字符串数组来保存两个十进制操作数,两个数的长度可以不相等,要能运算20位以上的十进制数。大数加减乘我都很快实现了,就是除法没找到思路。有什么好的说来看看。
[/Quote]http://download.csdn.net/source/403510
这是我大学时写的~~~仅供参考!
xali
2011-03-18
打赏
举报
回复
128位大整数运算源代码,你要的都有
http://download.csdn.net/source/971780
zhouhui915
2011-03-18
打赏
举报
回复
我做的是用两个字符串数组来保存两个十进制操作数,两个数的长度可以不相等,要能运算20位以上的十进制数。大数加减乘我都很快实现了,就是除法没找到思路。有什么好的说来看看。
驴被脑袋踢了
2011-03-18
打赏
举报
回复
直接用BAIDU搜一下, 大数乘法,大数除法,很多滴
Joanna-zhang
2011-03-18
打赏
举报
回复
我这里有个大数运算的程序 是原来写东西 用来参考的 不知道合适你用不
JungleWei
2011-03-18
打赏
举报
回复
① 高精度乘以低精度;
算法:将多位数存入数组,低位在前、高位在后,然后用一位数去乘数组的各位,考虑进位,最后按按正常顺序输出。源程序如下:
#include <stdio.h>
#define N 200
main()
{
int a[N] = {0};
int i, j, k, m;
char b[N] = {0};
printf("Input two numbers:\n");
scanf("%d ", &m);
scanf("%s", b);
k = strlen(b);
for(i = 0; i < k; i++) a[i] = b[k - i - 1] - '0';
a[0] = a[0] * m;
for(i = 1; i < k; i++)
{
a[i] = a[i] * m;
a[i] = a[i] + a[i - 1] /10;
a[i - 1] = a[i - 1] % 10;
}
while(a[k - 1] >= 10)
{
k++;
a[k - 1] = a[k - 2] / 10;
a[k - 2] = a[k - 2] % 10;
}
for(i = k - 1; i>=0; i--) printf("%d", a[i]);
}
② 高精度除以低精度;
算法:按照从高位到低位的顺序,逐位相除。在除到第j位时,该位在接受了来自第j+1位的余数后与除数相除,如果最高位为零,则商的长度减一。源程序如下:
#include <stdio.h>
#define N 500
main()
{
int a[N] = {0}, c[N] = {0};
int i, k, d, b;
char a1[N];
printf("Input 除数:");
scanf("%d", &b);
printf("Input 被除数:");
scanf("%s", a1);
k = strlen(a1);
for(i = 0; i < k; i++) a[i] = a1[k - i - 1] - '0';
d = 0;
for(i = k - 1; i >= 0 ; i--)
{
d = d * 10 + a[i];
c[i] = d / b;
d = d % b;
}
while(c[k - 1] == 0 && k > 1) k--;
printf("商=");
for(i = k - 1; i >= 0; i--) printf("%d", c[i]);
printf("\n余数=%d", d);
}
JungleWei
2011-03-18
打赏
举报
回复
① 高精度乘以低精度;
算法:将多位数存入数组,低位在前、高位在后,然后用一位数去乘数组的各位,考虑进位,最后按按正常顺序输出。源程序如下:
#include <stdio.h>
#define N 200
main()
{
int a[N] = {0};
int i, j, k, m;
char b[N] = {0};
printf("Input two numbers:\n");
scanf("%d ", &m);
scanf("%s", b);
k = strlen(b);
for(i = 0; i < k; i++) a[i] = b[k - i - 1] - '0';
a[0] = a[0] * m;
for(i = 1; i < k; i++)
{
a[i] = a[i] * m;
a[i] = a[i] + a[i - 1] /10;
a[i - 1] = a[i - 1] % 10;
}
while(a[k - 1] >= 10)
{
k++;
a[k - 1] = a[k - 2] / 10;
a[k - 2] = a[k - 2] % 10;
}
for(i = k - 1; i>=0; i--) printf("%d", a[i]);
}
② 高精度除以低精度;
算法:按照从高位到低位的顺序,逐位相除。在除到第j位时,该位在接受了来自第j+1位的余数后与除数相除,如果最高位为零,则商的长度减一。源程序如下:
#include <stdio.h>
#define N 500
main()
{
int a[N] = {0}, c[N] = {0};
int i, k, d, b;
char a1[N];
printf("Input 除数:");
scanf("%d", &b);
printf("Input 被除数:");
scanf("%s", a1);
k = strlen(a1);
for(i = 0; i < k; i++) a[i] = a1[k - i - 1] - '0';
d = 0;
for(i = k - 1; i >= 0 ; i--)
{
d = d * 10 + a[i];
c[i] = d / b;
d = d % b;
}
while(c[k - 1] == 0 && k > 1) k--;
printf("商=");
for(i = k - 1; i >= 0; i--) printf("%d", c[i]);
printf("\n余数=%d", d);
}
zhouhui915
2011-03-18
打赏
举报
回复
怎么会没听过大数问题?
神经质女孩
2011-03-18
打赏
举报
回复
不明白你说的意思
大数
除法
算法
大数
除法
大数
除法
问题
实际项目中遇到
大数
除法
问题,超出范围;故采用数组存储;利用进位
算法
大数
加减乘除 高精度乘
除法
大数
除法
算法
算法
大数
加减乘除 高精度乘
除法
gaojingdu.rar_c
大数
加法_c++
大数
除法
_
大数
加 减 乘 除_
大数
算法
_高精度
高精度
算法
,包括
大数
加法,
大数
减法,
大数
乘法,
大数
除法
,
大数
取余等高精度
算法
——————
大数
除法
————————
大数
除法
如被除数1256555558585545556546544565465565665 除数:53435343545335135353 可以
求
出商和余数的程序
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章